Ios CGImageMaskCreate指定遮罩图像的颜色

Ios CGImageMaskCreate指定遮罩图像的颜色,ios,ios7,uiimage,cgimage,Ios,Ios7,Uiimage,Cgimage,如何为提取图像的一部分指定遮罩图像颜色 我发现了以下代码: - (UIImage *)maskImage:(UIImage *)image withMask:(UIImage *)maskImage { CGImageRef maskRef = maskImage.CGImage; CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),

如何为提取图像的一部分指定遮罩图像颜色

我发现了以下代码:

- (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];
}
正如Apple doc所说:

要应用遮罩参数的图像。这个图像 不得为图像遮罩,也不得具有图像遮罩或遮罩 与之相关的颜色。戴上面具。如果遮罩是一个图像,它 必须在DeviceGray颜色空间中,不能有alpha 组件,并且其本身不能被图像遮罩或遮罩遮罩 颜色如果遮罩的大小与 图像参数,然后石英缩放遮罩以适合图像

我有蓝色的源图像:

我有指定颜色的图像:

所以基于这些颜色,我想从源图像中提取图像的一部分,如果我能在源图像中检测到提取图像的中心坐标,那将是非常棒的。没错,问题是使用DeviceGray color时,我需要一个源图像和五个遮罩图像,但我想指定我要提取的颜色,并且只有两个图像-源图像和“遮罩”图像