如何将某种颜色设置为透明?

时间:2011-03-21 18:47:12

标签: flash actionscript-3 bitmapdata

我正在使用copyPixels将较大位图的一部分复制到较小的位图,以用于单个MovieClip。但是,周围还有一些额外的空间空白区域和位图边缘周围的角落。如何将位图中的白色设置为透明,这样我就不会看到这些难看的边缘了?

2 个答案:

答案 0 :(得分:4)

您可以使用BitmapData.threshold方法。此代码在蓝色背景上创建一个带红色方块的BitmapData,然后使用阈值方法使红色像素透明。

var inputBitmapData:BitmapData = new BitmapData(200, 200, true, 0xFF0000FF);
inputBitmapData.fillRect(new Rectangle(10, 10, 180, 180), 0xFFFF0000);

var outputBitmapData:BitmapData = new BitmapData(200, 200, true);
var destPoint:Point = new Point(0, 0);
var sourceRect:Rectangle = new Rectangle(0, 0, outputBitmapData.width, outputBitmapData.height);
var threshold:uint =  0xFFFF0000; 
var color:uint = 0x00000000;
outputBitmapData.threshold(inputBitmapData, sourceRect, destPoint, "==", threshold, color, 0xFFFFFFFF, true);

var input:Bitmap = new Bitmap(inputBitmapData);
addChild(input);

var output:Bitmap = new Bitmap(outputBitmapData);
output.x = input.x + input.width + 10;
addChild(output);

答案 1 :(得分:0)

您可以使用BitmapData.colorTransform()draw()代替copyPixels()调整颜色