1

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

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

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

有没有人对处理此类或其他类以将大型位图数据发送到具有闪存的服务器有任何建议?

感谢您的时间。

4

5 回答 5

1

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

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

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

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

于 2008-11-18T23:26:09.327 回答
0

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

于 2008-11-19T04:40:03.750 回答
0

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

于 2008-11-19T21:46:05.300 回答
0

as3 有几个很好的 JPEG 压缩类,我使用的是谷歌:http ://code.google.com/p/as3corelib/

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

于 2008-12-04T20:03:57.220 回答
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 并从服务器上生成图像。不知道!

于 2009-04-01T03:12:46.420 回答