kCGImageAlphaNone无法parsing的标识符在swift中
我想在Swift中使用CoreImage将图像/纹理(SpriteKit)转换为灰度:
我发现这个答案: https ://stackoverflow.com/a/17218546/836501我试图转换为iOS7 / 8的Swift
但是kCGImageAlphaNone
不存在。 相反,我可以使用CGImageAlphaInfo.None
但函数CGBitmapContextCreate()
不喜欢它作为其最后一个参数。 我有义务使用枚举CGBitmapInfo
但似乎没有kCGImageAlphaNone
等价的内部。
这是错误的参数(最后一个)的完整行:
var context = CGBitmapContextCreate(nil, UInt(width), UInt(height), 8, 0, colorSpace, kCGImageAlphaNone)
我只需要在Swift中将UIImage转换为灰度。
您必须从CGImageAlphaInfo.None
值创build一个struct CGBitmapInfo
:
let bitmapInfo = CGBitmapInfo(CGImageAlphaInfo.None.rawValue) var context = CGBitmapContextCreate(nil, UInt(width), UInt(height), 8, 0, colorSpace, bitmapInfo)
我相信最初的Objective-C代码是错误的。 kCGImageAlphaNone
枚举值不是要传递的适当types,但Objective-C的types安全性较低(枚举是一个枚举),所以它工作。 kCGImageAlphaNone
的原始值是0
,所以传递CGBitmapInfo.allZeros
或CGBitmapInfo.ByteOrderDefault
(都是原始值为0
)应该给你相同的结果。
- 用于Core Image的CIGaussianGradientfilter的示例
- 将核心图像滤镜(CIBumpDistortion)应用于图像的一个部分+改变CIFilter的select和强度的半径
- iOS – 无法使用CIFilter处理图像
- 使用GPU(可能CIFilters)将图像放在较大的canvas上,而不使用Image Context
- CGImageDestinationFinalize或UIImageJPEGRepresentation – 在IOS 10上保存大文件时发生崩溃
- UIImage掩盖与手势
- iOS白点/白平衡调整示例/build议
- 使用Core映像进行过滤时内存泄漏
- MonoTouch中的CoreImage不会从有效资产中返回有效的图像