我有一个图像视图,显示从相机或画廊拍摄的方面适合图像。在 Imageview 的顶部,我放置了一个 UIView(可移动、可缩放)。
我想相对于 UIView 的框架裁剪图像的区域。
所以我这样做了:
CGImageRef imageRef = CGImageCreateWithImageInRect([myImageView.image CGImage], cropV.frame);// cropV is the UIview over the myImageView
UIImage *img = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
问题是当我这样做时,我的矩形(UIview)在图像上的实际位置(尺寸很大)是不一样的。
例如。对于 1024x1024 图像,在 320x480 屏幕上的宽高比适合模式下,如果我的cropV 在帧上(10,10,300,300),图像 a 的表现会有所不同;CGImageCreateWithImageInRect 将根据 1024x1024 图像创建图像。
有没有办法可以根据图像大小缩放cropV 帧?这样矩形(cropV)就只是裁剪了那部分。
现在我在上下文中绘制图像。但这给我带来了宽屏/优质高清照片的模糊裁剪。
UIGraphicsBeginImageContext(myImageView.frame.size);
[myImageView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGImageRef imageRef = CGImageCreateWithImageInRect([viewImage CGImage], cropV.frame);