CGBitmapContextСоздать с помощью kCGImageAlphaNone - PullRequest
21 голосов
/ 23 февраля 2012

Мне очень нужно создать CGContextRef БЕЗ альфа-канала.К сожалению, с Core Graphics вы НЕ МОЖЕТЕ указать kCGImageAlphaNone с CGBitmapCreateContext.

Может кто-нибудь опубликовать рабочий пример того, как я могу создать CGContextRef БЕЗ альфа-канала?

Причина, по которой мне это нужно, потомуВ конечном итоге я пытаюсь вызвать CGImageCreateWithMaskingColors, который, конечно, НЕ будет работать, если предоставленный CGImageRef имеет альфа-канал.

Пожалуйста, опубликуйте рабочий пример.Если вы это сделаете, вы можете наслаждаться тем, что вы будете на переднем крае и будете первым, кто сделает это!Пожалуйста, напишите!

1 Ответ

55 голосов
/ 23 февраля 2012

Вы можете создать растровый контекст без альфа-канала.Вы просто не можете создать растровый контекст с тремя байтами на пиксель.Вот секретное рукопожатие:

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