CGBitmapContextCreate with kCGImageAlphaNone
Asked Answered
F

1

24

I desperately need to create a CGContextRef WITHOUT an alpha channel. Unfortunately, with Core Graphics you CANNOT specify kCGImageAlphaNone with CGBitmapCreateContext.

Can someone PLEASE post a working example of how I can create a CGContextRef WITHOUT an alpha channel?

The reason I need this is because I'm ultimately trying to call CGImageCreateWithMaskingColors, which, of course, will NOT work if the CGImageRef provided has an alpha channel.

Please post a working example. If you do you can relish in the fact that you will be on the cutting edge and will be the FIRST person to do so! Please post!

Fussbudget answered 23/2, 2012 at 6:38 Comment(1)
If anyone is having the problem mentioned in the link then please follow my solution : answers.opencv.org/question/12273/… This is a related issueSaddlebow
T
64

You can create a bitmap context with no alpha channel. You just can't create a bitmap context with three bytes per pixel. Here's the secret handshake:

CGContextRef gc = CGBitmapContextCreate(NULL, myWidth, myHeight, 8, 0,
        myColorSpace, kCGImageAlphaNoneSkipLast);

In Swift:

let gc = CGContext(
    data: nil,
    width: myWidth, height: myHeight,
    bitsPerComponent: 8, bytesPerRow: 0,
    space: myColorSpace,
    bitmapInfo: CGImageAlphaInfo.noneSkipLast.rawValue)
Tiana answered 23/2, 2012 at 6:52 Comment(1)
Thanks, that worked. Believe it or not you are the first person to post a solution anywhere on the net. Way to go!Fussbudget

© 2022 - 2024 — McMap. All rights reserved.