Как я могу получить список всех шестнадцатеричных цветов растрового изображения? - PullRequest
0 голосов
/ 07 марта 2012

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

Это растровое изображение не является расширенным (340x230)

Спасибо

Ответы [ 2 ]

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

Цикл по вектору будет быстрее, чем getPixel:

var lookupMap:Object = {};
var v:Vector.<uint> = bitmapData.getVector(bitmapData.rect)
var colors:Array = [];

for each (var color:uint in v) {
    if (lookupMap[color] !== true) {
        colors.push(color);
        lookupMap[color] = true;
    }
}
2 голосов
/ 07 марта 2012

Это не имеет ничего общего с Flash "сосать", это простая проблема.Если ваш сбой, вы делаете что-то не так.

var lookupMap:Object = {};
var bmd:BitmapData = somebitmapDataObject;
var colours:Array = [];

for(var i:int=0; i<bmd.height; i++) {
    for(var j:int=0; j<bmd.width; j++) {
        var colour:uint = bmd.getPixel(j,i);
        if(lookupMap[colour] !== true) {
            colours.push(colour);
            lookupMap[colour] = true;
        }
    }
}

Код не проверен на ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...