移动AIR应用程序需要将大图像发送到后端,以便稍后在网页中显示。
AIR应用程序中的PNGEncoder需要永远完成,因此我们的想法是将图像数据转换为ByteArray,对其进行压缩并将其发送到PHP后端,然后通过PHP代码将其保存为PNG。所以我希望将PNGEncoder.as和BitmapData类移植到PHP来实现这一目标。我在as3corelib中找到了PNGEncoder.as但找不到它使用的BitmapData类的源代码。
所以问题是
1.那里有代码可以做我想做的事吗?
2.我在哪里可以找到BitmapData源代码?
3.还有另一种方法可以实现这一目标吗?
注1。我意识到我可以反编译bitmapData所在的airglobal.swf,但寻找更清晰的方式
笔记2。我知道AMFPHP但它不支持BitmapData类型
谢谢
安迪
答案 0 :(得分:0)
我看到了这个问题的两个解决方案。
首先,您可以考虑使用Worker
来执行转换和发送例程,因为图像转换是卸载的一个非常独立且简单的任务,并且因为大多数现代设备都有多个核心,所以它是最好将硬件放在客户端而不是服务器上。当然,您必须采取一些措施为工作者实例提供所需数据并正确上传图像(cookie可能无法在工作人员中很好地处理),但这种方法通常更简洁,不需要服务器端更改。 / p>
第二种方法是使用BitmapData.getPixels()
将像素区域转换为字节序列,然后将它们不加改变地发送到服务器进行转换。但请注意,原始位图中的数据量可能太大而服务器无法接受,因此您希望每个像素不少于4个字节,因为AS3中的位图是32位。上传后,您可以使用服务器端图像编码器在服务器上转换原始数据。