2012-02-23 3 views
21

Necesito desesperadamente crear un CGContextRef SIN un canal alfa. Desafortunadamente, con Core Graphics NO PUEDE especificar kCGImageAlphaNone con CGBitmapCreateContext.CGBitmapContextCreate con kCGImageAlphaNone

¿Alguien puede POR FAVOR publicar un ejemplo práctico de cómo puedo crear un CGContextRef SIN un canal alfa?

La razón por la que necesito esto es porque finalmente estoy tratando de llamar a CGImageCreateWithMaskingColors, lo que, por supuesto, NO funcionará si el CGImageRef proporcionado tiene un canal alfa.

Por favor, publique un ejemplo de trabajo. Si lo hace, puede saborear el hecho de que estará a la vanguardia y ¡será la PRIMERA persona en hacerlo! Por favor publica!

+0

Si alguien está teniendo el problema mencionado en el enlace a continuación, por favor, siga mi solución: http://answers.opencv.org/question/12273/cgbitmapcontextcreate-invalid-data-bytesrow-error /? answer = 104865 # post-id-104865 Este es un problema relacionado – Spandan

Respuesta

52

Puede crear un contexto de mapa de bits sin canal alfa. Simplemente no puede crear un contexto de mapa de bits con tres bytes por píxel. Aquí está el apretón de manos secreto:

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

Gracias, eso funcionó. Lo creas o no, eres la primera persona en publicar una solución en cualquier lugar de la red. ¡Camino a seguir! – PleaseHelp

Cuestiones relacionadas