Why is this supported combination of CGBitmapContextCreate parameters rejected as unsupported?

I have the following Swift code to do CGBitmapContext

let imageDirectoryPath:String = "/Users/blah/blah/"
let imageFileName:String = "flower.tif"
let imageNS = NSImage(contentsOfFile: imageDirectoryPath + imageFileName)!
let imageCG = imageNS.CGImageForProposedRect(nil, context: nil, hints: nil)
var rawDataIn:[UInt8] = [UInt8](count: Int(imageNS.size.width) * Int(imageNS.size.height) * 4, repeatedValue: 0xff)
let context = CGBitmapContextCreate(
    &rawDataIn,
    Int(imageNS.size.width),
    Int(imageNS.size.height),
    8,
    Int(imageNS.size.width * 4),
    CGColorSpaceCreateDeviceRGB(),
    CGImageAlphaInfo.PremultipliedLast.rawValue)

I get an error from this and using the Xcode scheme for the project to set the environment variable CGBITMAP_CONTEXT_LOG_ERRORS, I will detail the error:

Nov 10 10:12:16 SwiftConsoleGrabcut [826]: 
    CGBitmapContextCreate: unsupported parameter combination:
        8 integer bits / component;
        32 bits / pixel;
        RGB color space model; kCGImageAlphaPremultipliedLast;
        19789 bytes / row.
    Valid parameters for RGB color space model are:
        16 bits per pixel, 5 bits per component, kCGImageAlphaNoneSkipFirst
        32 bits per pixel, 8 bits per component, kCGImageAlphaNoneSkipFirst
        32  bits per pixel,      8  bits per component,      kCGImageAlphaNoneSkipLast
        32  bits per pixel,      8  bits per component,      kCGImageAlphaPremultipliedFirst
        32  bits per pixel,      8  bits per component,      kCGImageAlphaPremultipliedLast
        64  bits per pixel,      16 bits per component,      kCGImageAlphaPremultipliedLast
        64  bits per pixel,      16 bits per component,      kCGImageAlphaNoneSkipLast
        128 bits per pixel,      32 bits per component,      kCGImageAlphaNoneSkipLast |kCGBitmapFloatComponents
        128 bits per pixel,      32 bits per component,      kCGImageAlphaPremultipliedLast |kCGBitmapFloatComponents
    See Quartz 2D Programming Guide (available online) for more information.

, , 32 , 8 kCGImageAlphaPremultipliedLast -, .

?

size.width. tif, imageNS, 481 , imageNS.size.width 4947.4285714285716, bonkers, .

+4

Source: https://habr.com/ru/post/1615214/


All Articles