kCGImageAlphaNone swift中未解析的标识符

Kal*_*zem 4 image-processing core-image ios swift

我试图在Swift中使用CoreImage将图像/纹理(对于SpriteKit)转换为灰度:

我找到了这个答案:https://stackoverflow.com/a/17218546/836501我尝试将其转换为swift for iOS7/8

kCGImageAlphaNone不存在.相反,我可以使用CGImageAlphaInfo.None但功能CGBitmapContextCreate()不喜欢它作为它的最后一个参数.我不得不使用枚举,CGBitmapInfo但似乎没有kCGImageAlphaNone相应的内部.

这是带有错误参数的完整行(最后一个):

var context = CGBitmapContextCreate(nil, UInt(width), UInt(height), 8, 0, colorSpace, kCGImageAlphaNone)
Run Code Online (Sandbox Code Playgroud)

我只需要一种在Swift中将UIImage转换为灰度的方法.

Mar*_*n R 12

您必须struct CGBitmapInfoCGImageAlphaInfo.None值创建一个:

let bitmapInfo = CGBitmapInfo(CGImageAlphaInfo.None.rawValue)
var context = CGBitmapContextCreate(nil, UInt(width), UInt(height), 8, 0, colorSpace, bitmapInfo)
Run Code Online (Sandbox Code Playgroud)

  • 通过[这个答案](http://stackoverflow.com/a/29957352/255489):从Swift 2.0开始,你可以直接将`CGImageAlphaInfo.NoneSkipFirst.rawValue`传递给`CGBitmapContextCreate`. (7认同)