Когда я использую порог растровых данных, что происходит с пикселями, не прошедшими пороговый тест? По моему наблюдению они остаются такими же, так есть ли способ их удалить?
as3 BitmapData threshold, что происходит с пикселями, не прошедшими тест? Как их удалить?
Ответы (1)
Лучшим способом было бы использовать временный (статический, многоразовый) прозрачный BitmapData для этой операции. Вы заполняете его значением 0x0, затем вызываете источник настройки threshold()
для своего BitmapData, а для флага copySource
установлено значение false, затем вы copyPixels()
возвращаетесь с mergeAlpha
значением false.
var tbd:BitmapData=yourBitmapData.clone(); // this makes a new BitmapData, so be warned
var p0:Point=new Point();
tbd.fillRect(tbd.rect,0);
tbd.threshold(yourBitmapData,yourBitmapData.rect,p0,yourOperation,
yourThreshold,yourColor,yourMask,false);
yourBitmapData.copyPixels(tbd,tbd.rect,p0);
tbd.dispose();
person
Vesper
schedule
02.08.2013
BitmapData.threshold()
, будет естественным образом находиться за пределами порога, таким образом, этот подход аннулирует весь растровый рисунок. - person Vesper   schedule 05.08.2013threshold()
и имеете BitmapData двух цветов: 0x305070ff и 0x55ff0000. Теперь вы хотите обнулить все остальные пиксели, вы вызываете порог с обратной операцией и БАМ, все ваши растровые данные теперь состоят из нулей! Это не то, что вы обычно хотите, верно? - person Vesper   schedule 06.08.2013