Как объединить красный и зеленый каналы в синий канал? - PullRequest
0 голосов
/ 06 октября 2009

Я портирую игру для DOS на AS3. Мне нужен способ специально отформатировать файлы спрайтов.

Мне нужно знать, как взять PNG с 256-цветной палитрой и сохранить (предположительно) 32-битный PNG, где все три цветовых канала суммируются только с синим каналом - поэтому вся информация о цвете содержится только синий канал.

Я планирую изменить кодер PN3 AS3 для этого, но я не знаю, как конкретно рассчитать значение каждого пикселя. любая помощь, пожалуйста?

Очень ценится!

1 Ответ

3 голосов
/ 06 октября 2009

для извлечения информации о цвете из пикселя

//24bit
var color:uint = 0x336699;
var r:uint = color >> 16;
var g:uint = color >> 8 & 0xFF;
var b:uint = color & 0xFF;

//32bit
var color:uint = 0xff336699;
var a:uint = color >>> 24;
var r:uint = color >>> 16 & 0xFF;
var g:uint = color >>>  8 & 0xFF;
var b:uint = color & 0xFF;

чтобы вернуть его в пиксель

//24bit
var r:uint = 0x33;
var g:uint = 0x66;
var b:uint = 0x99;
var color:uint = r << 16 | g << 8 | b;

//32bit
var a:uint = 0xff;
var r:uint = 0x33;
var g:uint = 0x66;
var b:uint = 0x99;
var color:uint = a << 24 | r << 16 | g << 8 | b;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...