Flash截图

时间:2008-11-18 18:06:14

标签: flash image-processing actionscript-2

我们正在尝试将大型SWF文件的图像发送到服务器以将其邮寄出去,我们在传输时遇到了一些麻烦。

SWF约为900px x 600px并且仅限于AS2,所以我们一直在使用这个Bitmap Exporter类。我们尝试过几种不同的方式来传输数据; base10,base36和base128,但它们都不会及时发送文件。

现在我们正在处理每张图片60-120秒,这是不可接受的。

有没有人建议处理这个或那个类,以便将大型位图数据发送到带闪存的服务器?

感谢您的时间。

5 个答案:

答案 0 :(得分:1)

您获得如此长的上传时间的原因是图像几乎没有压缩(或者完全没有,具体取决于类的实现方式)。 16 bpp的900 x 600像素(或闪存使用的任何东西)相当于1.5mb的原始数据。

我怀疑AS2有任何有用的压缩库,但可能是可能的路径。

在客户端使图像变小的最简单方法是降低分辨率。一旦到达服务器,您使用的是全分辨率吗?如果不是这可能是一种可能的方式。

(我猜你知道使用AS3会更容易,然后你可以毫不费力地将整个图像压缩为jpeg客户端,但我猜你的应用程序的其余部分是AS2,这有点没有实际意义点)

答案 1 :(得分:0)

您也可以尝试使用amfphp,因为它允许在向服务器发送数据时进行二进制序列化。

答案 2 :(得分:0)

您可能希望在AS2中实现一个简单的RLE算法(如果尚不存在)来压缩位图。假设你有漂亮的纯色矢量元素,RLE应该提供相当好的压缩。

答案 3 :(得分:0)

as3有一些很好的JPEG压缩类,我用的是googles:http://code.google.com/p/as3corelib/

您可以将其移植到as2 ...

答案 4 :(得分:0)

快速浏览并链接 - http://www.gskinner.com/blog/archives/2006/03/saving_bitmapda.html

编辑 - 这也可能有用! http://www.5etdemi.com/blog/archives/2006/10/the-ultimate-as2-bitmapdata-saving-solution/

Grant Skinner建议将图像数据下采样到较小的调色板,然后进行一些运行时压缩(他倾向于压缩UTF-8字符串,然后在其他地方处理图像转换,我想服务器)

UltimateBrent与JPEG压缩库的链接听起来像是一个好的,如果不是技术挑战的想法。

是彩色托盘深度的问题吗?有损压缩?

你可以将一堆变量发送到服务器,在本地运行的swf上重新创建图像,然后将其导出到那里吗?或者是否有太多变量(如绘画类型程序)?比方说,如果它是一个制作你自己的头像的东西,你可能能够将设置转换为XML并从服务器上生成图像。说不上!