我试图用Swift中的SpriteKit将图像/纹理转换为灰度,并使用CoreImage:
我找到了这样的答案:https://stackoverflow.com/a/17218546/836501,我试图将它转换为用于iOS7 7/8的which
但kCGImageAlphaNone并不存在。相反,我可以使用CGImageAlphaInfo.None,但是函数CGBitmapContextCreate()不喜欢它作为它的最后一个参数。我不得不使用枚举CGBitmapInfo,但是里面似乎没有kCGImageAlphaNone等效的东西。
这是带有错误参数的整行(最后一个参数):
var context = CGBitmapContextCreate(nil, UInt(width), UInt(height), 8, 0, colorSpace, kCGImageAlphaNone)在Swift中,我只需要一种将UIImage转换为灰度的方法。
发布于 2014-12-10 15:40:45
您必须从struct CGBitmapInfo值创建一个CGImageAlphaInfo.None:
let bitmapInfo = CGBitmapInfo(CGImageAlphaInfo.None.rawValue)
var context = CGBitmapContextCreate(nil, UInt(width), UInt(height), 8, 0, colorSpace, bitmapInfo)发布于 2014-12-10 15:24:59
我相信原来的目标-C代码是错的。kCGImageAlphaNone枚举值不是要传递的适当类型,但是Objective不太安全(枚举就是枚举),因此它起了作用。kCGImageAlphaNone的原始值是0,因此传递CGBitmapInfo.allZeros或CGBitmapInfo.ByteOrderDefault (两者都有0的原始值)应该会给出相同的结果。
https://stackoverflow.com/questions/27404107
复制相似问题