有谁知道如何着色非透明图像的部分并保留反式图像?你能告诉我一个指示吗? 感谢
编辑: 图像的中心和白色边框(alpha 0.8)有一个透明区域。我只想用图像填充白色部分(并保持其alpha和透明图像)。在这种情况下,我想我应该使用蒙版图像,然后将其与我已有的图像混合。
+(UIImage *)createImageFromImageA:(UIImage *)imgA andImageMask:(UIImage *)imgB{
CGImageRef maskRef = imgB.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([imgA CGImage], mask);
return [UIImage imageWithCGImage:masked];
}
似乎输出图像与旧图像相同,而不是保持图像的alpha已经改变。这很模糊。 那么,我的解决方案有什么问题吗?
答案 0 :(得分:1)
根据您的需要,有几个Core Image filters可能会有用。对于您在评论中描述的情况(白框,透明中心),请查看CIMultiplyCompositing。此滤镜将两个图像的颜色分量相乘。如果要将白框的颜色更改为红色,则可以将帧图像与纯橙色图像合成;纯白色(RGBA = 1,1,1,1)和纯红色(RGBA = 1,0,0,1)的产品应为纯红色。透明像素应保持透明。
如果你想做其他事情,比如应用模糊,你可以使用不同的过滤器。有许多可供选择,您可以在上面链接的Core Image过滤器参考中阅读所有这些内容。