Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CGBitmapContextCreate with kCGImageAlphaNone

Tags:

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!

like image 329
PleaseHelp Avatar asked Feb 23 '12 06:02

PleaseHelp


1 Answers

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) 
like image 199
rob mayoff Avatar answered Sep 27 '22 22:09

rob mayoff