Adobe Flashで生成されたswfファイルがあります。 QTでヘッダーを解凍するにはどうすればよいですか? サイズ(幅と高さ)、フレームレート、フレーム数が必要です。swfファイルのヘッダを解凍してください(qUncompressで可能?)
おかげ
Adobe Flashで生成されたswfファイルがあります。 QTでヘッダーを解凍するにはどうすればよいですか? サイズ(幅と高さ)、フレームレート、フレーム数が必要です。swfファイルのヘッダを解凍してください(qUncompressで可能?)
おかげ
qUncompress
は全て圧縮されたデータは、それを解凍するQByteArray
にすることが必要かどうかは文書化されていません。それのwordingから、それはそれを暗示しているようです。私はいくつかの大きなSWFをメモリにロードするだけで、ヘッダーに数バイトを入れるのは実用的ではないと思います。
あなただけで始まるファイルを読み込み、メモリにファイル全体を読み込むと一緒に暮らすことができる場合は、QByteArray
に4をオフセットし、第一4のバイト順序を反転(SWFはリトルエンディアンであるとqUncompress
はにあるように長さが必要ですbig-endian)。フリップされた32ビット整数から4を引く。次にqUncompress
に電話してください。
ファイル全体をロードするのが理想的でない場合は、直接zlib
のストリーム機能を使用する方がよい場合があります。これにより、データを1つずつ解凍することができます。
また、ファイルの長さが圧縮されています。 – Doru
http://www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf(25ページ)の仕様によれば、最初の8バイトは圧縮されていません。ファイル長(圧縮解除された)は最初の8バイトの一部です。 –