在我的应用中,我使用image
从相机捕获UIImagePicker
而不是裁剪。但问题是,当我在横向模式下从相机捕捉图像时,在以画面模式裁剪时,黑框显示在图像中。
以横向模式捕获图像 -
在使用该图像时,黑框显示在图像的上部和下部,如下图所示 -
但我想删除那些黑色部分,以便image
覆盖整个区域。
我该怎么做?
答案 0 :(得分:3)
你是否正在裁剪图像
CGImageCreateWithImageInRect([image CGImage], rect);
或者你可以分享一下你在裁剪的确切方式吗?
在横向模式下从UIImagePickerController
拍摄图像时,需要检查UIImage的方向属性。即[image orientation];
如果方向值为UIInterfaceOrientationLandscapeLeft|UIInterfaceOrientationLandscapeRight
,则在矩形宽度和高度之间互换。然后裁剪它。
答案 1 :(得分: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;
}