我正在尝试从 mp3 中加载 jpg(我在 Flash 中执行此操作,但这既不是这里也不是那里),我已经在十六进制编辑器中打开了一些 MP3,而标签的其余部分是很清楚,图像部分是一个谜。有一个标签“image/jpeg”,但随后我期望图像的字节长度或用于划分图像结尾的字符串键,但我什么也没看到,标签上的文档完全没有帮助。
希望得到一些关于我在这里寻找的指导。惊讶于结果是多么不直观!
TIA
虽然我通常提倡 msw 的解决方案,但该站点似乎没有 Flash 库。但是,它确实具有ID3v2 规范。如果您查看第 4., 部分ID3v2 frame overview
,您会看到帧头包含帧的大小,不包括标题。我相信可以安全地假设可以从那里计算图像大小。
PD:我假设你知道 ID3v2 标签是如何工作的。如果你不这样做,我建议你至少粗略地看一下规范。基本上,有一个标题,一个扩展标题,然后是一个或多个包含标签数据的帧(每个数据一帧),最后是填充。
编辑:出于测试目的,我在十六进制编辑器中打开了一个带有已知标签数据的 MP3。找到一个名为 的帧APIC
,将指定字节数复制到一个新文件中并保存为test.jpg
. 没有完全奏效。
进一步挖掘,我找到了frame spec。具体来说,第 4.14 节attached picture
描述了帧的各种“子标题”(1 字节文本编码、零分隔的 mimetype、1 字节图片类型和零分隔描述)。因此,我从数据中删除了该信息,并将剩余部分复制到一个新的 jpg 文件中,Windows 能够显示该文件。
因此,该技术是:
除非你喜欢痛苦,否则不要重新发明那个轮子。这只是为您工作的图书馆的一个来源。