私は通常 msw のソリューションを支持しますが、そのサイトには Flash 用のライブラリがないようです。ただし、ID3v2 仕様はあります。セクション 4. をID3v2 frame overview
見ると、フレーム ヘッダーにはフレームのサイズが含まれており、ヘッダーは含まれていないことがわかります。そこから画像サイズを計算できると仮定しても安全だと思います。
PD: ID3v2 タグの仕組みを知っていると思います。そうでない場合は、少なくとも仕様をざっと見てみることをお勧めします。基本的に、ヘッダー、拡張ヘッダー、タグのデータ (データごとに 1 フレーム) を含む 1 つ以上のフレーム、最後にパディングがあります。
編集: テスト目的で、既知のタグ データを含む MP3 の 1 つを 16 進エディターで開きました。という名前のフレームを見つけ、APIC
指定されたバイト数を新しいファイルにコピーし、それを として保存しましたtest.jpg
。うまくいきませんでした。
さらに掘り下げると、フレームスペックが見つかりました。特に、セクション 4.14 ではattached picture
、フレームの一種の「サブヘッダー」について説明しています (1 バイトのテキスト エンコーディング、ゼロ区切りの MIME タイプ、1 バイトのピクチャ タイプ、およびゼロ区切りの説明)。そこで、データからその情報を切り取り、残りを新しい jpg にコピーしました。これは Windows で表示できました。
したがって、テクニックは次のとおりです。
- フレームヘッダーからフレームサイズを取得します。
- フレーム サブヘッダーのフレームの先頭を解析し、それを削除します。(4バイトから無限バイトまで)
- 残りのバイト数に基づいてイメージ サイズを計算します。