2012-02-23 9 views
21

Rozpaczliwie potrzebuję stworzyć CGContextRef BEZ kanału alfa. Niestety, w Core Graphics NIE MOŻNA określać wartości kCGImageAlphaNone za pomocą CGBitmapCreateContext.CGBitmapContextUtwórz z kCGImageAlphaNone

Czy ktoś może ZAPRASZAĆ ​​pracujący przykład, w jaki sposób mogę utworzyć CGContextRef BEZ kanału alfa?

Powodem muszę to dlatego, że mam w końcu próby wywołania CGImageCreateWithMaskingColors, który, oczywiście, nie działać, jeśli CGImageRef warunkiem ma kanał alfa.

Proszę napisać przykład pracy. Jeśli tak, możesz cieszyć się faktem, że będziesz w czołówce i będzie to PIERWSZA osoba, która to zrobi! Proszę pisać!

+0

Jeśli ktoś mający problem wymieniony w linku to proszę śledzić moje rozwiązanie: http://answers.opencv.org/question/12273/cgbitmapcontextcreate-invalid-data-bytesrow-error /? answer = 104865 # post-id-104865 To jest powiązany numer – Spandan

Odpowiedz

52

Można utworzyć kontekst bitmapowy bez kanału alfa. Po prostu nie można utworzyć kontekstu bitmapowego z trzema bajtami na piksel. Oto tajemnica handshake:

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

Dzięki, to zadziałało. Wierzcie lub nie, jesteś pierwszą osobą, która zamieściła rozwiązanie w dowolnym miejscu w sieci. Dobra droga! – PleaseHelp