iOS SDK - 图像屏蔽 [英] iOS SDK - Image masking
本文介绍了iOS SDK - 图像屏蔽的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何用非透明像素用另一个图像掩盖图像?
例如
How to mask an image with another image by non transparent pixels? E.g.
当面具图像为黑白时,我使用此功能:
When the mask image is black&white, I use this function:
- (UIImage *)maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
return [UIImage imageWithCGImage:masked];
}
但在我的情况下如何做到这一点?
But how to do this in my case?
推荐答案
以下是实现结果的步骤
1 )创建一个图像视图,并计算它的最佳大小(+ set aspectFit选项)
1) Create an image view, and calculate the optimal size for it (+ set aspectFit option)
2)获取图像视图框,并创建一个带有该选项的蒙版(即缩放预定义的蒙版图像)
2) Get the image view frame, and create a mask with that options (i.e. scale your predefined mask image)
3)使用创建的蒙版掩模图像视图
3) Mask image view, with your created mask
UIImageView *maskView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"star_mask_alpha.png"]];
self.needsMaskImageView.layer.mask = maskView.layer;
[self.needsMaskImageView setNeedsDisplay];
这篇关于iOS SDK - 图像屏蔽的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文