我有一段代码使用图像的 Alpha 通道创建蒙版。在升级到 Mavericks 之前,它运行良好,我从未在 Xcode 调试控制台中收到过任何警告或错误。自升级以来,我收到此警告:
从枚举类型“enum CGImageAlphaInfo”到不同枚举类型“CGBitmapInfo”的隐式转换(又名“enum CGBitmapInfo”)
标记为问题的行:
CGBitmapContextCreate(alphaData, width, height, 8, rowBytes, NULL, kCGImageAlphaOnly);
以下是文档对最后一个参数(aka kCGImageAlphaOnly
)的说明:
bitmapInfo
指定位图是否应包含 Alpha 通道、Alpha 通道在像素中的相对位置以及有关像素组件是浮点值还是整数值的信息的常量。用于指定 alpha 通道信息的常量使用
CGImageAlphaInfo
类型声明,但可以安全地传递给此参数。您还可以传递与该CGBitmapInfo
类型关联的其他常量。
奇怪的是,在文档(图像的 Alpha 信息)中,Apple 的 typedef 没有列出我正在使用的选项。但是,在下面的术语列表中,确实如此!它是这样说的:
kCGImageAlphaOnly
没有颜色数据,只有一个 Alpha 通道。在 OS X v10.3 及更高版本中可用。中宣布CGImage.h
。
考虑到我想创建一个 alpha 蒙版,我对任何颜色数据都不感兴趣,所以我使用的参数是唯一有意义的参数。我不确定它要我做什么。无论如何,该方法有效,并且在应用程序运行时一切正常。话虽如此,警告真的很烦人。是否有特殊的 CLANG 指令可以使其静音?任何帮助,将不胜感激。干杯。