如何指定遮罩图像颜色以提取图像的一部分?
我找到了这段代码:
- (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缩放蒙版以适合图像。
我有蓝色源图片:
我有指定颜色的图像:
因此,基于这些颜色,我想从源图像中提取图像的一部分,如果我能够检测源图像中提取图像的中心坐标,那么它也会很棒。没有问题的是,使用DeviceGray颜色我需要有一个源图像和五个蒙版图像,但我想要指定我想要提取的颜色并且只有2个图像 - 源和"掩码"而不是它。图像。