В Core Graphics, почему альфа-канал предпочитается быть наиболее значимым? (kCGImageAlphaPremultipliedFirst против kCGImageAlphaPremultipliedLast)

Большая часть кода, который создает растровый контекст, использует kCGImageAlphaPremultipliedFirst, чтобы создать ARGB, а не kCGImageAlphaPremultipliedLast создать RGBA. Есть ли причина, по которой ARGB предпочтительнее?

(Использование):

CGBitmapContextCreate(NULL, size.width, size.height, 8, size.width * 4, 
    colorSpace, kCGImageAlphaPremultipliedFirst);

2 ответа

Я думаю, что это как-то связано с "порядком байтов" используемого процессора.

Вышеупомянутые две константы определяют местоположение альфа-компонента и то, являются ли цветовые компоненты предварительно умноженными. Он может храниться в старших или младших значащих битах каждого пикселя, за исключением того, что обе константы работают одинаково, нет никаких предпочтений по отношению друг к другу с точки зрения производительности.

Для растровых изображений, созданных в iOS 3.2 и более поздних версиях, среда рисования использует предварительно умноженный формат ARGB для хранения растровых данных. Для растровых изображений, созданных в iOS 3.1.x и более ранних версиях, среда рисования использует предварительно умноженный формат RGBA для хранения растровых данных.

Другие вопросы по тегам