如何获得正确的区域来裁剪 UIImage?
Posted
技术标签:
【中文标题】如何获得正确的区域来裁剪 UIImage?【英文标题】:How to get the correctly region to crop an UIImage? 【发布时间】:2017-01-04 01:52:08 【问题描述】:我的目标 c 应用程序中有一个 UIImageView
。在这个UIImageView
上,我加载了一张照片,然后从相机中拍摄。我应用一个区域来裁剪UIImage
。该区域是CAShapeLayer
的矩形。但我的问题是,当我将框架包含在矩形中时,这与我的矩形所在的位置不同......我得到一个错误的区域然后裁剪。
我使用这个代码:
CAShapeLayer *_outline = [CAShapeLayer new];
UIImageView *vistaImagen;
...
UIGraphicsBeginImageContextWithOptions(_vistaImagen.frame.size, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddPath(context, _boundingBox.accessibilityPath.CGPath);
CGContextClip(context);
[_vistaImagen.layer renderInContext:context];
UIImage *iii = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
如果我添加了要裁剪的图层框架,可能会出现什么问题:_boundingBox.accessibilityPath.CGPath
??
谢谢!!
【问题讨论】:
【参考方案1】:好吧,花了几个小时后,我发现了问题。我正在创建规模不佳的 UIGraphicsBeginImageContextWithOptions ... 我需要使用比例为 1,因为我在 UIImage 中以真实比例获取图像,但我将比例初始化为 0。
UIImageView *vistaImagen;
UIGraphicsBeginImageContextWithOptions(_vistaImagen.frame.size, NO, 1.0);
【讨论】:
以上是关于如何获得正确的区域来裁剪 UIImage?的主要内容,如果未能解决你的问题,请参考以下文章
CGImageCreateWithImageInRect 不能正确裁剪