在 iPhone 中裁剪图像的某些部分(以某种形状)
Posted
技术标签:
【中文标题】在 iPhone 中裁剪图像的某些部分(以某种形状)【英文标题】:Crop Some Part of image (in some shape) in iPhone 【发布时间】:2011-11-14 14:00:07 【问题描述】:我想做的是:
我在 iPhone 屏幕上有一张图片。
现在,用户将在图像上移动手指。就像他会做圆形、三角形、方形或星形一样。 (不用担心,move会有闭环)。
现在,当用户完成移动时,意味着用户将制作圆形、三角形或任何其他形状,然后应该裁剪该部分图像。
有没有人有这个想法或与此相关的任何东西?
如果有更多细节,请告诉我。
谢谢。
【问题讨论】:
【参考方案1】:您应该阅读Quartz2D Programming Guide,它解释了 CoreGraphics 如何帮助您做到这一点。
特别是有一个部分专门介绍路径 (NSBezierPaths
)、剪辑区域、图像蒙版等等。在您的情况下,可能需要蒙版,但可能需要更多的剪切区域。
您还可以使用路径将其他对象的绘制限制在路径范围内,实际上创建了一个剪切区域。
(您在文档中看到的捕获是 MacOSX 窗口,但当然您可以在 iPhone 上执行完全相同的操作,Quartz2D 上的文档对于这两种环境都非常通用)
【讨论】:
【参考方案2】:这对我有用
if (!self.pictureImageViewMasked)
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(0.0, 0.0)];
[path addLineToPoint:CGPointMake(50.0, 0.0)];
[path addLineToPoint:CGPointMake(50.0, 50.0)];
[path addLineToPoint:CGPointMake(0.0, 50.0)];
[path closePath];
if (![[self.pictureImageView layer] mask])
[[self.pictureImageView layer] setMask:[CAShapeLayer layer]];
[(CAShapeLayer*)[[self.pictureImageView layer] mask] setPath:[path CGPath]];
self.pictureImageViewMasked = YES;
【讨论】:
以上是关于在 iPhone 中裁剪图像的某些部分(以某种形状)的主要内容,如果未能解决你的问题,请参考以下文章
从 iPhone 的照片库中调整方形裁剪图像的正确方法而不会失真