使用quartz2d和多个图像进行图像遮罩

时间:2013-11-27 06:20:16

标签: ios quartz-2d core-image

嗨,我正试图用另一幅图像掩盖一幅图像,只留下两幅图像之间的差异。

Quartz2D似乎有一个合适的方法来做这个叫CGImageCreateWithMask,据我所知,应该返回原始图像的结果被掩盖的掩码是一个CGImageRef,所以可以是一个掩码或另一个图像。

不幸的是,我似乎从这个方法回来的是null。文档说明了需要在deviceGray颜色空间中的掩码,我有点不确定,可能会导致我的一些问题。

    CGImageRef initialImage = [imageContext createCGImage:inputImage fromRect:[inputImage extent]];
    CGImageRef alteredImage = [imageContext createCGImage:[[CIImage alloc] initWithImage:[UIImage imageNamed:@"bun1red"]] fromRect:[inputImage extent]];
    CGImageRef maskedImage = CGImageCreateWithMask(initialImage, alteredImage);

    _myUIImage.image = [UIImage imageWithCGImage:maskedImage];

如果我将最后一行中的maskedImage替换为其他两个中的任何一个,它们都会正确显示。但是maskedImage似乎是空的。

如果可以避免,我并不特别想要对单个像素或类似物做出xOR。

因此,如果有人知道如何正确使用此方法或我做错了什么,我们将非常感谢一些指示。

0 个答案:

没有答案