用户是否可以在该位周围画一条虚线(圆圈)UIImageView
他们希望裁剪到,然后为UIImageView
调整大小到这些点?这有点像 Photoshop 中的套索/选取框效果:
更新:从 iOS 8.x 开始,UIImageView 提供了maskView
财产。只需准备一个具有一些不透明像素的图像,使用该蒙版图像创建另一个图像视图,并将该蒙版图像视图设置为 maskView。蒙版图像中的不透明像素将是底层图像中显示的像素。
UIImageView *maskView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"somemask"]];
maskView.frame = imageView.bounds;
imageView.maskView = maskView;
// imageView will be masked by maskView
.
原答案
还有很多工作要做,但这里有一个概要概述:
- 创建一个空图像,该图像将成为蒙版
- 根据用户输入在该图像中构建路径
- 填充路径将其变成蒙版
- 将蒙版应用于图像视图的图像
创建图像:这里的一个简单想法是在您的项目中附带一个黑色图像。它的大小应匹配用户可以选择的最大区域。将图像读入内存(UIImage imageNamed:
)并通过调用将其设置为绘图上下文UIGraphicsBeginImageContext
.
创建路径:(请参阅苹果文档 https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_paths/dq_paths.html)。当用户开始抚摸该区域时,调用CGContextBeginPath
,然后跟随用户手势,对触摸进行采样并通过调用添加小片段CGContextMoveToPoint
反复触摸移动。
创建蒙版:要将路径变成蒙版,您需要黑色背景并用白色填充路径。如果您从黑色图像开始,则只需进行填充即可。请参阅有关执行此操作的同一个苹果指南。
最后,您将将此遮罩应用于 imageView 的图像。这是一个不错的参考 http://mobiledevelopertips.com/cocoa/how-to-mask-an-image.html为了那个原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)