iOS SDK - 图像屏蔽 [英] iOS SDK - Image masking

查看:126
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆