有谁知道如何对非透明图像的部分进行着色并保留透明图像?你能给我一个指示吗? 谢谢
编辑: 图像在中心有一个透明区域和白色边框 (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 已更改。很模糊。 那么,我的解决方案有什么问题吗?
最佳答案
有几个Core Image filters这可能有用,具体取决于您的需要。对于你在评论中描述的情况(白框,透明中心),看看CIMultiplyCompositing .此滤镜将两个图像的颜色分量相乘。如果您想将白色框架的颜色更改为红色,您可以将框架图像与纯橙色图像合成;纯白色 (RGBA=1,1,1,1) 和纯红色 (RGBA=1,0,0,1) 的乘积应该是纯红色。透明像素应保持透明。
如果您想做其他事情,例如应用模糊,您可以使用不同的滤镜。有很多可供选择,您可以在上面链接的 Core Image 滤镜引用中阅读所有相关信息。
关于ios - 如何使用图像对 iOS 中图像的非透明部分进行着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23425047/