iOS SDK - 图像遮罩

5
如何使用非透明像素用另一张图片遮罩图片? 例如:enter image description here 当遮罩图片是黑白图像时,可以使用以下函数:
- (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];
}

但是在我的情况下,该如何实现这一点?

1个回答

5
这是实现结果的步骤:
1)创建一个图像视图,并计算最佳大小(+设置aspectFit选项)
2)获取图像视图框架,并使用该选项创建掩模(即缩放预定义的掩模图像)
3)使用创建的掩模对图像视图进行遮蔽
    UIImageView *maskView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"star_mask_alpha.png"]];
    self.needsMaskImageView.layer.mask = maskView.layer;
    [self.needsMaskImageView setNeedsDisplay];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接