AS3 монохромные изображения - PullRequest
0 голосов
/ 25 марта 2012

Я хотел бы сохранить много изображений как bitmapData в памяти. Изображения монохромные, поэтому мне не нужны значения RGB или RGBA. Есть ли способ установить для внутреннего формата bitmapData одноцветный или другой способ отображения изображений, кроме использования BitmapData?

Ответы [ 2 ]

2 голосов
/ 25 марта 2012

Нет, для BitmapData нет монохромного формата.

Нет, вы не можете отображать изображения ни в чем другом, кроме BitmapData (хорошо, шейдеры и тому подобное, но на самом деле это не то же самое).

Тем не менее, вы можете использовать ByteArray для сохранения данных, которые в настоящее время не используются, чтобы позже использовать некоторые BitmapData и setPixel для установки пикселей путем разделения значения одного канала на 3 значения.

1 голос
/ 25 марта 2012

Если у вас есть до 4 изображений одинакового размера, вы можете повторно использовать один объект BitmapData, чтобы сохранить их все в разных каналах, и использовать ColorMatrixFilter, чтобы показать только нужный канал.

Это будет быстрее (и , вероятно, меньше кода), чем предложение wvxvw о сохранении данных в ByteArray и использовании setPixel.

// store data in the red channel
bitmap.bitmapData.copyChannel( im1.bitmapData, im1.bitmapData.rect, new Point(), BitmapDataChannel.RED, BitmapDataChannel.RED );
// store data in the green channel
bitmap.bitmapData.copyChannel( im2.bitmapData, im2.bitmapData.rect, new Point(), BitmapDataChannel.GREEN, BitmapDataChannel.GREEN);

// e.g. filter the bitmap to just show the green channel
// (1's in first col for red, 3rd col for blue, 4th for alpha
var greenChannelFilter:ColorMatrixFilter = new ColorMatrixFilter( 
            [ 0,1,0,0,0,
              0,1,0,0,0,
              0,1,0,0,0,
              0,0,0,0,255 ]);
bitmap.filters = [greenChannelFilter];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...