5

在我的应用程序中,我image使用相机捕捉UIImagePicker而不是裁剪它。但问题是,当我在横向模式下从相机拍摄图像时,在纵向模式下裁剪时,黑匣子会显示在图像中。

图像以横向模式拍摄 -

在此处输入图像描述

并且在使用该图像时,黑框显示在图像的上部和底部,如下图所示 -

在此处输入图像描述

但我想移除黑色部分,以便image覆盖整个区域。

我怎样才能做到这一点 ?

4

2 回答 2

3

您是否正在裁剪图像, CGImageCreateWithImageInRect([image CGImage], rect); 或者您能否分享一下您是如何进行裁剪的?

当从UIImagePickerController横向模式下拍摄图像时,您需要检查 UIImage 的方向属性。IE[image orientation];

如果方向值为UIInterfaceOrientationLandscapeLeft|UIInterfaceOrientationLandscapeRight,则在矩形宽度和高度之间互换。然后裁剪它。

于 2012-07-11T18:26:14.680 回答
0
-(UIImage *)crop:(CGRect)rect Image:(UIImage *)originalImage ImageOrientation:(UIImageOrientation)imageOrientation
{

    CGImageRef imageRef = CGImageCreateWithImageInRect(originalImage.CGImage, rect);

    UIImage *result = [UIImage imageWithCGImage:imageRef scale:1.0f orientation:imageOrientation];

    CGImageRelease(imageRef);

    return result;
}
于 2012-07-18T06:22:18.367 回答