如何使用非透明像素用另一个图像遮罩图像? 例如。
当蒙版图像为黑白时,我使用此功能:
- (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];
}
但是我的情况怎么办呢?
答案 0 :(得分:5)
以下是实现结果的步骤
1)创建一个图像视图,并计算它的最佳大小(+ set aspectFit选项)
2)获取图像视图框,并使用该选项创建蒙版(即缩放预定义的蒙版图像)
3)使用您创建的面具掩盖图像视图
UIImageView *maskView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"star_mask_alpha.png"]]; self.needsMaskImageView.layer.mask = maskView.layer; [self.needsMaskImageView setNeedsDisplay];