Если у вас есть до 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];