2

クラスを使用AVCaptureConnectionAVCaptureStillImageOutputてオーバーレイ画面を作成し、画像をキャプチャしています。ビューには、キャプチャ ボタン、フラッシュ ボタンなどのカスタム コントロールを備えたカスタム タブ バーがあります。

問題は、カメラが画像全体をキャプチャしていて、プレビュー ページに表示されることです。つまり、カスタム タブバーが 40 ピクセルであるため、ユーザーにはタブ バーでキャプチャ領域が表示されます。ユーザーはカスタム タブバーまで画像を取得します。 .しかし、プレビュー画面では、画像が伸びて、撮影した画像とは別の余分な画像が表示されます。

キャプチャ エリアを設定するためにプロパティを検索しようとしましAVCaptureConnectionたが、何も見つかりませんでした。ユーザーが画像を取得する最初の画面

あなたが見ることができるように、ユーザーは彼が取ったものとは別に余分なものを見ています

撮影した画像

4

1 に答える 1

0

AVCaptureConnection でキャプチャ領域を設定する方法はないと思います。代わりに、画面から画像を読み取ってから、必要に応じてトリミングすることができます。

UIImage *photoImage が写真のキャプチャ時に返される画像である場合

CGRect refRect; //Define this to the exact frame which you want to crop the larger image to i.e. with smaller frame.size.height
CGFloat deviceScale = photoImage.scale;
CGImageRef imageRef = CGImageCreateWithImageInRect(photoImage.CGImage. refRect);
UIIImage *finalPhoto = [[UIImage alloc] initWithCGImage:imageRef deviceScale orientation:photoImage.imageOrientation];

finalPhoto が必要に応じてトリミングされます

于 2013-05-26T06:38:21.410 に答える