位图数据的副本是不正确的颜色?

时间:2014-05-23 18:36:58

标签: actionscript-3 flash bitmap bitmapdata color-management

我将图像加载到我的应用程序中,然后将该图像转换为base64数据,然后再次显示(在HTML页面上)。但是,当我这样做时,颜色是不同的!我使用getPixel32来获取图像数据。我在某处读到Flash使用预先计算的值,这就是原因。我模糊地理解它。有人可以解释或链接到一篇文章,解释发生了什么以及如何解决它?

代码片段:

byteArray = bitmapData.getPixels(new Rectangle(0, 0, bitmapData.width, bitmapData.height));

此外,是否有可能失去它的颜色配置文件?

更新
我包括用于拍摄屏幕截图并将其转换为基本64位数据的代码。 http://pastebin.com/Q7MiWg9u

1 个答案:

答案 0 :(得分:2)

这是一个非常好的问题!我首先将此作为答案发布,因为评论时间过长,其次,因为本文至少可以帮助您了解问题所在:http://www.quasimondo.com/archives/000665.php

一切都是因为预乘的alpha和Flash的工作方式。

我将进行一些小测试,看看你是否可以使用getPixel32和setPixel32来解决这个问题,你可以在其中使用unmultipleid值并计算你需要设置的实际值。