我正在开发一个 Flash 应用程序,该应用程序将显示由各种 PNG 制作的具有透明度的 MovieClip。PNG 需要在运行时进行颜色校正,以使亮度级别保持一致。为此,我编写了使用 MovieClip 的平均亮度级别来确定图像变亮或变暗的代码。有人慷慨地给了我代码来计算 Adobe 论坛上的平均亮度:http ://forums.adobe.com/message/3501572
这种使用直方图的方法非常有效,除非影片剪辑具有透明区域。MovieClip 中的任何透明像素都会读取为纯白色并扭曲结果。
有谁知道更好的方法来做到这一点?我需要一个准确的结果;我记得尝试过一些古怪的事情,比如将 MovieClip 缩小到 1 个像素并读取该像素的颜色,但这并不有效。
编辑:
啊啊!我终于从http://www.kirupa.com/forum/showthread.php?266493-Extract-Bitmap-or-BitmapData-from-MovieClip弄明白了。默认的 BitmapData 构造函数用白色填充。我用透明像素填充它。请参阅下面的答案。