CGImageMaskCreate指定蒙版图像的颜色

时间:2015-02-03 15:01:22

标签: ios ios7 uiimage cgimage

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

我找到了这段代码:

- (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医生所说:

  

要应用蒙版参数的图像。这个图片   不得为图像蒙版,也不得有图像蒙版或蒙版   与之相关的颜色。面具一个面具。如果蒙版是图像,那么   必须在DeviceGray颜色空间中,不得有alpha   组件,并且可能本身不会被图像掩码或掩蔽掩盖   颜色。如果掩码与指定的图像大小不同   图像参数,然后Quartz缩放蒙版以适合图像。

我有蓝色源图片:

source image

我有指定颜色的图像:

enter image description here

因此,基于这些颜色,我想从源图像中提取图像的一部分,如果我能够检测源图像中提取图像的中心坐标,那么它也会很棒。没有问题的是,使用DeviceGray颜色我需要有一个源图像和五个蒙版图像,但我想要指定我想要提取的颜色并且只有2个图像 - 源和"掩码"而不是它。图像。

0 个答案:

没有答案