AS3 BitmapData threshold(): заменить цвет, который имеет альфа?

Привет, я хотел бы заменить определенный цвет в растровом изображении другим. Функция BitmapData.threshold() работает нормально, если пороговое значение цвета не имеет альфа.

var threshold:uint = 0xFF004d5e; //  this works, however if I use this  0x37004d5e, ie the same color with an alpha then it doesnt
var baseColour:uint = 0x3700c5e0;
var targetColour:uint = 0x37F38900;
var inputBitmapData:BitmapData = new BitmapData(200, 200, true, baseColour); 
inputBitmapData.fillRect(new Rectangle(10, 10, 180, 180), threshold); 
var input:Bitmap = new Bitmap(inputBitmapData); 
addChild(input); 

replaceColour(inputBitmapData,threshold,targetColour); 
function replaceColour(bitmapData:BitmapData,colorToReplace:uint, newColor:uint):void 
{ 
trace(" replaced:"+ bitmapData.threshold(bitmapData, new Rectangle(0, 0, bitmapData.width, bitmapData.height), new Point(), "==", colorToReplace, newColor, 0xFFFFFFFF)); 
}

Вышеуказанное работает, если вы не пытаетесь изменить цвет, который имеет альфа, то это не так. т.е. изменить значение пороговой переменной с 0xFF004d5e на 0x37004d5e, т.е. изменить цвет, который имеет альфа-канал, и тогда он не будет работать, но это то, что я хочу! У кого-нибудь есть идеи, как заставить функцию BitmapData.threshold() работать, когда у порогового цвета есть альфа?

0 ответов

Другие вопросы по тегам