私はobjective-cが初めてで、しばらくの間この質問に対する答えを探していました...
写真共有アプリを作成していますが、カメラをフルスクリーンにしたいです。次のコードを使用して、デフォルトのカメラ オーバーレイを非表示にし、独自のカメラ オーバーレイを作成して、カメラをフルスクリーンにしました。次の画面で、フルスクリーンでキャプチャした画像をもう一度表示したいのですが、画像が横に潰れてしまいます。
カメラ オーバーレイの設定:
-(void)loadCamera {
self.imagePicker = [[UIImagePickerController alloc]init];
self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.imagePicker.delegate = self;
self.imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.imagePicker.showsCameraControls = NO;
self.overlayIV = [[WAUCameraOverlayView alloc]initWithFrame:self.imagePicker.cameraOverlayView.frame];
[self.imagePicker.cameraOverlayView addSubview:self.overlayIV];
CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0, 71.0); //This slots the preview exactly in the middle of the screen by moving it down 71 points
self.imagePicker.cameraViewTransform = translate;
CGAffineTransform scale = CGAffineTransformScale(translate, 1.333333, 1.333333);
self.imagePicker.cameraViewTransform = scale;
[self presentViewController:self.imagePicker animated:YES completion:nil];
}
上記のコードはうまく機能し、カスタム オーバーレイを使用してカメラを全画面表示にします。次に、このコード ブロックが実行されます。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[self.overlayIV removeFromSuperview];
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
}
「画像」を次の画面に渡し、画面のサイズに初期化しますが、引き伸ばされます...フルスクリーンカメラからキャプチャされた画像を正確な比率とサイズで保存/表示する方法はありますか?
編集:画像を表示するために使用するコードは次のとおりです。
UIImageView *capturedImageView =[[UIImageView alloc]initWithFrame:self.frame];
capturedImageView.image = aImage;
capturedImageView.contentMode = UIViewContentModeScaleAspectFill;
[self addSubview:capturedImageView];
画像を画面のサイズにして、カメラでキャプチャされたのと同じ比率/縦横比にしたい