2009-12-30 84 views
0

我有一個帶有alpha通道的BitmapData對象。我想知道在ActionScript3(FlashPlayer10)中抵消alpha通道的方式。通過偏移我的意思是在一個方向上移動該通道的所有像素(環繞圖像邊界),同時保留顏色通道原樣。轉換BitmapData對象的單個通道

是否有一種很好的方法可以將這種轉換應用於一個通道?

回答

0

我想我將如何解決這個問題是創建一個原始bitmapData對象的克隆()。保持原文不變。隨着克隆,按照你想要的方式移動所有的像素。沒有內置的「滾動隨身攜帶」,但它並不難。下面是一個一些代碼,但你可以把它簡化很多,如果你只做一個方向:

http://www.actionscript.org/forums/showthread.php3?p=767722

後滾動,使用copyChannel()的alpha通道,從您的滾動克隆複製回原。

+0

謝謝,作品精美 – BuschnicK 2009-12-31 09:07:30

0

您可以使用Adobe PixelBender進行此類操作,也可以在ActionScript中手動(使用getVector/setVector)進行編寫。然而,移動alpha通道聽起來像一個壞主意,因爲所有的顏色都與預乘alpha一起存儲。

這意味着你將持續失去精確度。

+0

嗯,從來沒有聽說過之前的倍增阿爾法技巧。感謝您指出。我想知道它是否真的有益於性能。看起來像一個有爭議的權衡,因爲它修改位圖變得更加昂貴... – BuschnicK 2009-12-31 09:08:44