Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AS3位图数据源代码_Php_Actionscript 3 - Fatal编程技术网

Php AS3位图数据源代码

Php AS3位图数据源代码,php,actionscript-3,Php,Actionscript 3,移动AIR应用程序需要将大图像发送到后端,以便稍后在网页中显示。 AIR应用程序中的PNGEncoder需要永远完成,所以我们的想法是将图像数据转换为ByteArray,压缩它并将其发送到PHP后端,PHP代码将其保存为PNG。因此,我希望将PNGEncoder.as和BitmapData类移植到PHP以实现这一点。我在as3corelib中找到了PNGEncoder.as,但找不到它使用的BitmapData类的源。 所以问题是 1.是否有代码执行我正在尝试的操作? 2.在哪里可以找到Bitm

移动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类型
谢谢
Andy

我认为这个问题有两种解决方案

首先,您可以考虑使用<代码> Works/Cuffe来完成转换和发送例程,因为图像转换是一个相当独立且简单的任务来卸载,而且由于大多数现代设备都有不止一个内核,所以最好将硬件放到客户端而不是服务器上。当然,您必须采取一些措施向worker实例提供所需的数据并正确上载映像(worker中可能无法很好地处理cookie),但这种方法通常更干净,不需要服务器端更改


第二种方法是使用
BitmapData.getPixels()
将像素区域转换为字节序列,然后将它们原封不动地发送到服务器进行转换。但是,请注意,原始位图中的数据量可能太大,服务器无法接受,您希望每个像素不少于4个字节,因为AS3中的位图是32位的。上传后,您可以使用服务器端图像编码器在服务器上转换原始数据。

您也测试过JPEGEncoder而不是PNGEncoder吗?图像必须符合客户要求的png格式。我正在考虑在PHP中编写AS3位图->png或JPEG转换器(很好地移植了现有的PNGEncoder.as和JPEGEncoder.as)如果这样的代码可能有用,有什么反馈吗?我可以看到移动应用程序需要将大型图像上传到后端,以便以后在非AS3环境(例如网页)中显示的场景。感谢AndySorry,没有这方面的数据。也许现有的PHP库可以做到这一点,在图片生成器之间搜索,这些必须操作原始位图数据,所以可能至少已经开发了PNG编码器。有一个ImageMagick PHP库可以处理很多格式,但我认为它不能处理原始AS3位图数据。所以问题是,它对AS3移动开发者有多大用处?我知道至少有一个遇到了这个问题。也许你可以建议一个我可以问的论坛。谢谢