2011-10-18 65 views

回答

6

事實證明,我有一個類,正是這麼做的:

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對象。

+0

謝謝,應該派上用場 –

+0

eco_bach然後接受答案 –