iOS 中的自定义图像遮罩
我在遮罩图像方面遇到问题。我玩“拼图”游戏并且必须制作自定义图像。我发现并尝试了两种自定义裁剪的方法:
- 使用 CALayer.mask 属性。
- 使用 UIImage.mask 属性。
在第一个选项中,我创建自定义路径,然后将其分配给 CAShapeLayer.path 属性,然后将 CAShapeLayer 分配给 CALayer.mask 属性。最后我有自定义裁剪的图像。 在第二个选项中,我首先使用 CGImageMaskCreate()
方法(我使用之前创建的拼图的黑色蒙版图像),然后使用 CGContextClipToMask()
。 在这两个选项中,我都遇到性能问题(主要是当我将图像裁剪成 16 个拼图并拖到屏幕上时)。
是否有任何其他方法以自定义方式裁剪图像。 (我不知道如何解决性能问题)。 提前致谢。
I have a issue with masking images. I do game "puzzle" and have to make custom images. I found and tried 2 way of custom cropping:
- Using
CALayer.mask
property. - Using
UIImage.mask
property.
In first option i create my custom path, then assign it to CAShapeLayer.path
property, then assign CAShapeLayer
to CALayer.mask
property. At the end i have custom cropped image.
In second option i use firstly use CGImageMaskCreate()
method (i use previously created black mask images of puzzle), then CGContextClipToMask()
.
In either options i have problem with performance (mostly when i crop image into 16 puzzles and drag in over the screen).
Is there any other approaches to crop image in custom way.
(I don't know how to solve performance problem).
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(3)
试试这个:
-(UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect
{
CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
UIImage *cropped = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return cropped;
}
...
UIImage *temp_image = [self imageByCropping:original_image toRect:clipping_rectangle];
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有很多 UIImage 类别可供您使用。请给我一点时间,我将在这里发布一些链接:
There are lots of UIImage-categories out there you can use for this. Give me a moment and I'll post some links here: