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

标签 iphone core-graphics

当我使用以下代码时:

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 。 mask 函数需要一个每个像素 8 个字节的 CGImageRef,但只使用了其中 6 个字节,没有 Alpha channel 。至少,我认为这就是造成这种情况的原因。

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

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

相关文章:

ios - 如何调整单元格的高度以便内容可以适合它?

iphone - UITableView 动态与静态单元分配性能/内存使用

ios - CoreGraphics iOS 底部的圆角

ios - 将绘制的按钮更改为 imageView

iphone - 误报 respondsToSelector with UIApplicationDelegate 导致 NSInvalidArgumentException

iphone - 更改导航栏标题颜色和后退按钮标题颜色

android - Ionic 在 iOS 版本 8 上出现闪屏后崩溃

ios - 裁剪像素缓冲区

objective-c - 我可以用一种颜色和不同颜色的边框描边路径吗?

自定义控件上从左上角出现的 iOS 图形