création personnalisée de la caméra avec le carré de vue sur iOS
Je suis en train de créer une caméra personnalisée expérience sur iOS et l'extrait de code suivant est ce que je suis. Fondamentalement, je veux de l'habitude de vue de la caméra (c'est à dire avec les boutons suivants: capture, flash, grille, avant/arrière, annuler). Mais la seule différence entre le normal de l'appareil photo et la mienne est que je veux un carré pour la preview de la surface; pas un rectangle. Et puis, ce que vous voyez est ce que vous get (WYSIWYG), de sorte qu'il n'y a pas de recadrage nécessaire; que l'utilisateur aurait pris une place de l'image dans la première place.
J'ai également été à la recherche à la bibliothèque https://github.com/danielebogo/DBCamera mais je ne vois pas comment le personnaliser à ma fin. Toute aide? Merci.
MON CODE POUR L'INSTANT:
- (void)viewDidLoad {
[super viewDidLoad];
//Do any additional setup after loading the view.
//Capture Session
AVCaptureSession *session = [[AVCaptureSession alloc]init];
session.sessionPreset = AVCaptureSessionPresetPhoto;
//Add device
AVCaptureDevice *device =
[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
//Input
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
if (!input)
{
NSLog(@"No Input");
}
[session addInput:input];
//Output
AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init];
[session addOutput:output];
output.videoSettings =
@{ (NSString *)kCVPixelBufferPixelFormatTypeKey : @(kCVPixelFormatType_32BGRA) };
//Preview Layer
AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
UIView *myView = self.view;
previewLayer.frame = myView.bounds;
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.view.layer addSublayer:previewLayer];
//Start capture session
[session startRunning];
}
C'est le seul code personnalisé dans une vue unique du projet sur Xcode
UIImagePickerController
et juste de le personnaliser un peu?Soit on serait bien aussi longtemps que je reçois un bon contrôle sur ce qui se passe. J'ai été regarder le Sélecteur option ainsi; mais il semble y avoir un consensus à l'effet que c'est une approche plus pauvres; c'est pourquoi j'ai fait des recherches sur le "from scratch" pour depuis quelques jours.
Oui, le
UIImagePickerController
n'est pas quelque chose personnellement, je ne recommande si vous voulez un contrôle complet. Cependant, il est très rapide et facile à mettre en œuvre. Il fournit une bonne quantité d'options de personnalisation, jetez un oeil à ce post: lien Si vous voulez plus d'options, allez vérifier ce programme de démonstration d'Apple sur l'AV-classes lienMerci pour les liens. Je vais les regarder.
le monde est petit: j'ai déjà essayé le AVCam. Mais quand j'ai essayé de redimensionner la
AVCamPreviewView
afficher dans la table de montage en un carré, lui-même, il devient la place; cependant, à l'intérieur c'est un rectangle plus petit où l'image s'affiche. Savez-vous comment faire pour obtenir l'image pour remplir la place (c'est à dire le redimensionnement AVCamPreviewView
)? Ou étais-je pas censé redimensionner AVCamPreviewView
lui-même? Merci.
OriginalL'auteur Katedral Pillon | 2015-01-07
Vous devez vous connecter pour publier un commentaire.
Vous avez deux options pour faire ce que vous voulez, restez avec et personnaliser un
UIImagePickerController
, ou créer votre propre en utilisant leAVFoundation
.La
UIImagePickerController
ne fournissent pas mal d'options de personnalisation, et ce fil similaire a quelques bonnes informations sur: lien.Si vous voulez faire votre propre, je suggère de se diriger vers la Documentation d'Apple et de vérifier ce projet de démonstration a appelé
AVCam
: lien. Cependant, il est beaucoup plus en profondeur que vous aurez probablement besoin, alors je vous conseille cette vidéo tutoriel: lien.Si vous allez pour la dernière option, je tiens à mentionner que pour faire de la "caméra" entrer dans le cadre de votre
previewLayer
, vous pouvez définir lavideoGravity
sur leAVCaptureVideoPreviewLayer
àAVLayerVideoGravityResizeAspectFill
.Est-ce résolu "carré aperçu de la couche de sortie, mais l'image que j'en retire est encore à l'origine de la caméra aspect ratio"?
OriginalL'auteur Aleksander
De travail avec une caméra personnalisée peut être un peu de douleur, mais il va payer des dividendes étant donné que vous allez vraiment être en mesure de personnaliser votre app expérience.
La façon la plus simple de le faire est d'utiliser TGCameraViewController.
À l'aide de cette
TGCameraViewController
, vous pouvez modifier toute la vue de la caméra. En outre, Il fournit des fonctionnalités suivantes:-Vous pouvez aussi consulter AVCamManual: Extension de AVCam à Utiliser Capture Manuelle document pour la création personnalisée de la caméra.
OriginalL'auteur Meet Doshi