0

我有一个带有 alpha 通道的 BitmapData 对象。我想知道在 ActionScript3 (FlashPlayer10) 中偏移 alpha 通道的最快方法。通过偏移,我的意思是在一个方向上移动该通道的所有像素(环绕图像边界),同时保持颜色通道不变。

有没有一种好方法可以将这种变换仅应用于一个通道?

4

2 回答 2

0

您可以使用 Adob​​e PixelBender 进行这种操作,或者在 ActionScript 中手动编写(使用 getVector/setVector)。然而,移动 alpha 通道听起来是个坏主意,因为所有颜色都存储有预乘的 alpha。

这意味着您将持续损失精度。

于 2009-12-30T13:19:52.290 回答
0

我认为我将如何解决这个问题是创建原始 bitmapData 对象的 clone() 。保持原件不变。使用克隆,以您想要的方式移动所有像素。没有内置的“带有进位的滚动”,但它并不太难。这是其中的一些代码,但是如果您只做一个方向,则可以大大简化它:

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

滚动后,使用 copyChannel() 将 alpha 通道从滚动的克隆复制回原始通道。

于 2009-12-30T15:48:48.577 回答