当你想在你的代码中找到一个错误时,这很难;当你认为你的代码是不会有错误时,这就更难了。

iphone-为什么在这种情况下cgimaCreateWithMaskingColors()返回nil?

admin 74℃
当我使用以下代码时:

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通道。掩蔽函数需要 CGImageRef 每个像素有8个字节,只有6个使用,没有alpha通道。至少,我认为这是导致它的原因。

无论如何,通过创建位图上下文,将图像绘制到该位图上下文,然后从 CGBitmapContextCreateImage .

失败的原因是无法使用alpha通道创建遮罩图像。不幸的是,你所要做的是不可能的。

使用'cgimacreatewithmaskingcolors(…)'的唯一方法是为它提供一个没有alpha通道的位图上下文。这里的第22个问题是,如果没有alpha通道,就不可能创建位图上下文。你不喜欢苹果吗?

转载请注明:我的代码 » iphone-为什么在这种情况下cgimaCreateWithMaskingColors()返回nil?