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 回答