Вы должны увидеть CGBitmapContextCreate: unsupported parameter combination
в консоли.Просто измените
let bmpinfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.none.rawValue)
на
let bmpinfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue)
, и все будет хорошо.Пример:
let colorSpace3: CGColorSpace = CGColorSpace(name: CGColorSpace.sRGB)!
let bmpinfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue)
let context3 = CGContext(data: nil, width: 256, height: 256, bitsPerComponent: 8, bytesPerRow: 0, space: colorSpace3, bitmapInfo: bmpinfo.rawValue)!
print(context3)
Отпечатки:
<CGContext 0x600000165580> (kCGContextTypeBitmap)
<<CGColorSpace 0x60000022a9c0> (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; sRGB IEC61966-2.1)>
width = 256, height = 256, bpc = 8, bpp = 32, row bytes = 1024
kCGImageAlphaPremultipliedLast | 0 (default byte order)
Кстати, ваш маленький танец обращения не нужен.Вы можете просто установить bmpInfo
на CGImageAlphaInfo.premultipliedLast.rawValue
и передать его прямо в функцию в качестве аргумента bitmapInfo
.Преобразование необходимо только в том случае, если вы также комбинируете информацию о порядке байтов с альфа-информацией.