当我使用以下代码时:

UIImage *image=[UIImage imageNamed:@"loginf1.png"];
CGImageRef rawImageRef=image.CGImage;

const float colorMasking[6] = {222, 255, 222, 255, 222, 255};

CGImageRef maskedImageRef=CGImageCreateWithMaskingColors(rawImageRef, colorMasking);
maskedImageRef 始终为零。这是为什么,我能做些什么来纠正这个问题?

最佳答案

我有同样的问题。您正在创建的 CGImageRef 每个像素只有 6 个字节,没有 alpha channel 。掩码函数需要一个 CGImageRef,每个像素有 8 个字节,只使用了其中的 6 个,没有 alpha channel 。至少,我认为这是造成它的原因。

无论如何,通过创建位图上下文,将图像绘制到该位图上下文,然后从 CGBitmapContextCreateImage 获取 CGImageRef 来修复它。

关于iphone - 为什么 CGImageCreateWithMaskingColors() 在这种情况下返回 nil?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3563770/

10-12 04:21