【发布时间】:2014-05-23 23:46:20
【问题描述】:
这是我面临的问题:
我已经使用 maskimage 实现了屏蔽。
这是原始图像:(尺寸:300width x 418height)
这是蒙版图片:(尺寸:165width x 215height)
下面是我用来根据蒙版裁剪图像并创建新的UIImage的代码:
CALayer *mask = [CALayer layer];
mask.contents = (id)[[UIImage imageNamed:@"maskImage.png"] CGImage];
mask.frame = imgMaskImage.frame;
mask.frame = CGRectMake(mask.frame.origin.x-10, mask.frame.origin.y-50, mask.frame.size.width, mask.frame.size.height);
self.imgEditedImageView.layer.mask = mask;
self.imgEditedImageView.layer.masksToBounds = YES;
imgMaskImage.image = nil;
UIGraphicsBeginImageContext(self.imgEditedImageView.frame.size);
[self.imgEditedImageView.layer renderInContext:UIGraphicsGetCurrentContext()];
croppedImage = UIGraphicsGetImageFromCurrentImageContext();
[croppedImage drawInRect:imgMaskImage.frame];
UIGraphicsEndImageContext();
它可以工作并相应地裁剪图像。结果如下:
但最终裁剪图像(UIImage)图像占用原始图像(300x418)的帧的问题。
我不明白为什么会这样。我已经尝试了很多东西,但仍然没有解决方案。如果我做错了什么或缺少什么,任何人都可以建议我。
谢谢。
【问题讨论】:
-
当您将大尺寸的图像遮盖成较小的图像时,只需尝试减小第一张图像的大小,然后遮盖两个.. 减小大小使用stackoverflow.com/questions/612131/…
标签: ios objective-c uiimageview uiimage image-masking