只是尝试使用:

    var context = CGBitmapContextCreate(nil,
        self.bounds.width as UInt,
        self.bounds.height as UInt,
        8,
        nil,
        CGColorSpaceCreateDeviceRGB(),
        kCGBitmapByteOrder32Big)

但是它说kCGBitmapByteOrder32Big是无法解析的标识符。但是我在stackoverflow中发现了许多这样的示例,但是对于ObjectiveC。问:如何初始化/获取CGBitmapInfo

正确的语法:
   var context:CGContextRef = CGBitmapContextCreate(nil,
        UInt(self.bounds.width),
        UInt(self.bounds.height),
        8,
        0,
        CGColorSpaceCreateDeviceRGB(),
        CGBitmapInfo.ByteOrder32Big)

最佳答案

在Swift中,这应该是CGBitmapInfo.ByteOrder32Big。您可以将其作为.ByteOrder32Big传递,因为已经知道CGBitmapInfo类型。

通常,形式为TypeValue或kTypeValue的ObjC/CoreFoundation枚举在Swift中为Type.Value。

您正在将nil作为bytesPerRow传递。我认为您的意思是0nil不是一回事(尽管它可能在ObjC中对您有用)。

08-17 23:13