根据图像分辨率裁剪UIImage

时间:2012-09-13 19:07:07

标签: ios

我有一个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,但这些方法不能保持图像质量,因为它会降低图像质量。

0 个答案:

没有答案