1

MP3 から jpg を読み込もうとしています (これは Flash で行っていますが、ここでもそこでもありません)。16 進エディターでいくつかの MP3 を開き、タグの残りの部分を読み込んでいます。かなりはっきりしていますが、画像部分は謎です。「image/jpeg」というラベルがありますが、画像のバイト長または画像の終わりを区切る文字列キーに似たものを期待していますが、そのようなものは何も表示されず、タグのドキュメントはまったく役に立ちません.

私がここで探しているものについてのガイダンスが欲しいです。これがどれほど非直感的であるかに驚いています!

ティア

4

2 に答える 2

1

私は通常 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バイトから無限バイトまで)
  • 残りのバイト数に基づいてイメージ サイズを計算します。
于 2011-04-16T05:59:12.213 に答える
0

痛みが好きでない限り、その車輪を再発明しないでください. これは、作業を行うライブラリのソースの 1 つにすぎません。

于 2011-04-16T05:47:54.683 に答える