我有一个UIImageView
。其内容模式设置为AspectFit
。
[imageView setContentMode:UIViewContentModeScaleAspectFit].
我需要从此图片裁剪subImage
。这是裁剪图像的代码:
CGImageRef imageRef = CGImageCreateWithImageInRect([imageView.image CGImage], customRect);
UIImage *cropped = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
其中customRect
是我需要裁剪图像的矩形。
这是我计算它的方式:
CGRect customRect = CGRectMake((cropView.frame.origin.x/xFactor),
(cropView.frame.origin.y/yFactor),
(cropView.frame.size.width/xFactor),
(cropView.frame.size.height/yFactor));
问题在于裁剪。 CGImageCreateWithImageInRect
根据实际图像大小裁剪给定区域,在某些情况下,图像大小大于图像视图大小。我尝试使用其他方法,例如UIGraphics:getImageFromCurrentImageContext
,但这些方法不能保持图像质量,因为它会降低图像质量。