我有一個問題,涉及加載透明pngs。 我想要做的是從加載的png複製alpha通道,然後將此alpha通道應用到另一個Bitmapdata對象。AS3-從1 BitmapData對象(加載的PNG)複製透明度並應用到另一個?
任何人都可以建議我會怎麼做?
我有一個問題,涉及加載透明pngs。 我想要做的是從加載的png複製alpha通道,然後將此alpha通道應用到另一個Bitmapdata對象。AS3-從1 BitmapData對象(加載的PNG)複製透明度並應用到另一個?
任何人都可以建議我會怎麼做?
事實證明,我有一個類,正是這麼做的:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BitmapDataChannel;
import flash.geom.Point;
import flash.geom.Rectangle;
public class BitmapAlphaMerge
{
public static function merge (imgBitmap:Bitmap, maskBitmap:Bitmap) : Bitmap
{
var img:BitmapData = imgBitmap.bitmapData;
var mask:BitmapData = maskBitmap.bitmapData;
var mergeBmp:BitmapData = new BitmapData(img.width, img.height, true, 0);
var rect:Rectangle = new Rectangle(0, 0, img.width, img.height);
mergeBmp.copyPixels(img, rect, new Point());
mergeBmp.copyChannel(mask, new Rectangle(0, 0, img.width, img.height), new Point(), BitmapDataChannel.ALPHA, BitmapDataChannel.ALPHA);
return new Bitmap(mergeBmp);
}
}
}
第一個參數是imgBitmap
要alpha通道添加到圖像。 maskBitmap
是您從中複製頻道的位圖。你可以修改它來很容易地使用純粹的BitmapData對象。
謝謝,應該派上用場 –
eco_bach然後接受答案 –
如果這適用於您,請接受答案。 –