2012-02-23 7 views
21

Ho un disperato bisogno di creare un CGContextRef SENZA un canale alfa. Sfortunatamente, con Core Graphics NON è possibile specificare kCGImageAlphaNone con CGBitmapCreateContext.CGBitmapContextCreate con kCGImageAlphaNone

Qualcuno può PER FAVORE pubblicare un esempio funzionante di come posso creare un CGContextRef SENZA un canale alfa?

Il motivo per cui ho bisogno di questo è perché in definitiva sto cercando di chiamare CGImageCreateWithMaskingColors, che, naturalmente, NON funzionerà se CGImageRef fornito ha un canale alfa.

Si prega di inviare un esempio di lavoro. Se lo fai puoi assaporare il fatto che sarai all'avanguardia e sarà la PRIMA persona a farlo! Per favore, post!

+0

Se qualcuno sta avendo il problema menzionato nel collegamento allora si prega di seguire la mia soluzione: http://answers.opencv.org/question/12273/cgbitmapcontextcreate-invalid-data-bytesrow-error /? answer = 104865 # post-id-104865 Questo è un problema correlato – Spandan

risposta

52

È possibile creare un contesto bitmap senza canale alfa. Non è possibile creare un contesto bitmap con tre byte per pixel. Ecco la stretta di mano segreta:

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

Grazie, ha funzionato. Che ci crediate o no, siete la prima persona a pubblicare una soluzione ovunque sulla rete. Ben fatto! – PleaseHelp

Problemi correlati