AS3 BitmapData ByteArray格式是什么/如何在Python中转换为PNG
在一个本地的AS3应用程序中,我需要以每秒25帧的速度捕捉视频,并将字节数组发送到一个本地的Python脚本。
当我尝试在AS3中将字节数组编码为PNG格式时,速度太慢了。
所以我决定直接写入我从这里得到的原始字节数组:
var bitmapdata:BitmapData = new BitmapData(_videow,_videoh,false,0);
bitmapdata.draw(_video);
var ba:ByteArray=bitmapdata.getPixels(bitmapdata.rect);
这样做的性能很好,并且到目前为止没有掉帧。
不过,我需要在Python那边将这些原始字节转换成PNG格式。
你有什么建议可以实现这个吗?
谢谢!
1 个回答
0
这大致上和 PCX*(BMP的早期变种)差不多。实际上,它和BMP非常相似,只是没有头部信息,像素是从左到右、从上到下写的,透明的位图数据用ARGB格式,实心的用RGB格式。
你用的是什么PNG编码器?你试过这个吗:http://www.blooddy.by/en/crypto/?当然,Python可能在后台使用GD或Imagemagic,所以用C语言写的代码会更快,但如果你想让它在用户的电脑上运行,那我建议你试试这个。
另外,http://www.senocular.com/flash/actionscript/?file=ActionScript_3.0/com/senocular/images/BMPEncoder.as 这个链接可能会给你一些启发,因为它是把位图数据转换成BMP格式。
- 抱歉,那不是PCX,我把PCX搞混了,它只是BMP的一种变体,像素的排列顺序不同。