我有以下情況:問題合併兩個BitmapData對象alpha通道
一個繪圖層(圖形用了lineTo對象等)
一個PNG帶有alpha通道(應該僅作爲掩碼)
現在我想只能在受png掩碼限制的區域內畫線。
我試圖像這樣:
var bitmapData:BitmapData = new BitmapData(320, 320);
bitmapData.draw(drawingLayer);
bitmapData.copyChannel(maskBitmapData, new Rectangle(0, 0, 320, 320), new Point(0, 0), BitmapDataChannel.ALPHA, BitmapDataChannel.ALPHA);
現在的邊界得到切除細,但我得到一個黑色的背景,因爲繪圖層繪製的線條之間的alpha(它應該仍然會是這樣)並且掩碼位圖在形狀外部具有一個alpha。所以自然,蒙版的alpha將替換繪圖層。
我試了它與合併,copyPixels和也只是設置圖層上的掩膜屬性(我把所有設置爲cacheAsBitmap),但無濟於事。
有人可以幫我嗎?
此外:
嘗試使用面具時,我與
<s:BitmapImage id="mask" source="@Embed(source='...')" cacheAsBitmap="true" />
試了一下,也可以作爲
[Embed("...")]
private const BodyMask:Class;
var maskBitmap:Bitmap = new BodyMask();
,並將它們分配給作爲mask屬性:組元素(cacheAsBitmap = true)發生在圖形對象上的操作。我也嘗試在每次抽獎操作後重新分配面具。
是否有可能出現問題?
是的,這就是我一開始就在做的事情。但面具從來沒有真正有效果。我真的無法弄清楚這一點,並認爲它可能與我的面具是一個PNG(雖然,爲什麼它不工作?)嘗試了cacheAsBitmap設置,然後搜索並發現一些人聲稱只是複製alpha通道。它是,雖然只是你掩蓋了一個堅實的物體,而不是透明背景上的一些塗鴉。 – DasAntonym