2012-01-03 2 views
0

로컬 as3 응용 프로그램에서 초당 25 프레임으로 비디오를 캡처하고 bytearray를 로컬 파이썬 스크립트로 보내야합니다. bytearray를 as3 내부의 png로 인코딩하려고하면 속도가 느려집니다.as3 비트 맵 데이터 bytearray 형식/파이썬에서 png로 변환하는 방법

var bitmapdata:BitmapData = new BitmapData(_videow,_videoh,false,0); 
bitmapdata.draw(_video); 
var ba:ByteArray=bitmapdata.getPixels(bitmapdata.rect); 

이 꽤 성능이 좋은이며, 지금까지 프레임 드롭하지 않습니다 그래서 난 그냥에서받은 원시 된 ByteArray를 쓰기로했다. 그러나 파이썬 측면에서 이러한 원시 바이트를 png로 변환해야합니다. 그 아이디어를 어떻게 얻을 수 있습니까?

감사합니다.

답변

0

대략적으로 PCX * (이전 버전의 BMP)와 동일합니다. 실제로는 BMP와 매우 유사하며 헤더가없고 왼쪽에서 오른쪽, 투명 비트 맵 데이터의 경우 ARGB, 솔리드의 경우 RGB로 쓰여집니다.

어떤 PNG 인코더를 사용하셨습니까? 이 중 하나를 시도해보십시오 : http://www.blooddy.by/en/crypto/? 물론 Python은 GD/Imagemagic을 사용하고있을 수 있습니다. 따라서 C 코드가 더 빨라지 겠지만, 사용자의 PC에서 실행하고 싶다면이 코드를 사용해보십시오.

추신 : http://www.senocular.com/flash/actionscript/?file=ActionScript_3.0/com/senocular/images/BMPEncoder.as 이것은 비트 맵 데이터를 BMP로 변환하기 때문에 약간의 통찰력을 줄 수 있습니다.

  • 죄송합니다. PCX가 아니며 PCX를 다른 것으로 혼동 시켰습니다. 다른 픽셀 순서로 된 BMP 변형입니다.
+0

확인해 주셔서 감사합니다. – zantafio

+0

글쎄, 나는 확인했다. 둘 다 아직 충분히 빠르지 않습니다. 또한 투명도가 필요하므로 bmp는 실제로 옵션이 아닙니다. 어쨌든 덕분에 – zantafio

+0

, 시도해 볼 것입니다. 정말 고마워. – zantafio

관련 문제