Flash 如何确定ID3v2标签中图像的隐藏位置?
我试图从mp3中加载jpg(我在Flash中这样做,但这既不在这里也不在那里),我在十六进制编辑器中打开了一些mp3,虽然标签的其余部分非常清晰,但图像部分是个谜。有一个标签“image/jpeg”,但是我希望图像的长度类似于字节长度,或者类似于一个字符串键来划分图像的结尾,但是我没有看到任何类似的内容,标签上的文档也完全没有帮助 我想知道我在找什么。惊讶于这是多么不直观Flash 如何确定ID3v2标签中图像的隐藏位置?,flash,mp3,id3v2,Flash,Mp3,Id3v2,我试图从mp3中加载jpg(我在Flash中这样做,但这既不在这里也不在那里),我在十六进制编辑器中打开了一些mp3,虽然标签的其余部分非常清晰,但图像部分是个谜。有一个标签“image/jpeg”,但是我希望图像的长度类似于字节长度,或者类似于一个字符串键来划分图像的结尾,但是我没有看到任何类似的内容,标签上的文档也完全没有帮助 我想知道我在找什么。惊讶于这是多么不直观 TIA除非你喜欢疼痛,否则不要重新发明那个轮子。这就是为你做工作的方法。除非你喜欢痛苦,否则不要重新发明轮子。这是为你做的工
TIA除非你喜欢疼痛,否则不要重新发明那个轮子。这就是为你做工作的方法。除非你喜欢痛苦,否则不要重新发明轮子。这是为你做的工作。虽然我通常会提倡msw的解决方案,但该网站似乎没有Flash库。然而,它确实有这样的优势。如果您查看第4节,
ID3v2 frame overview
,您将看到帧头包括帧的大小,而不包括帧头。我相信可以安全地假设图像大小可以从那里计算出来
我假设你知道ID3v2标签是如何工作的。如果您不这样做,我建议您至少粗略地看一下规范。基本上,有一个标题,一个扩展标题,然后是一个或多个包含标记数据的帧(每个数据一帧),最后是填充
编辑:出于测试目的,我在十六进制编辑器中打开了一个带有已知标记数据的MP3。找到名为APIC
的帧,将指定的字节数复制到新文件中,并将其保存为test.jpg
。不太管用
再进一步挖掘,我发现了那个。具体而言,第4.14节,所附图片
,其中描述了帧的排序“副标题”(1字节文本编码、零分隔mimetype、1字节图片类型和零分隔描述)。因此,我从数据中删除了这些信息,并将剩余部分复制到一个新的jpg上,Windows能够显示这个jpg
因此,技术是:
- 从帧头获取帧大小
- 解析出帧子标题的帧开头并将其删除。(4到无限字节之间的任意位置)
- 根据剩余字节数计算图像大小
- 虽然我通常支持msw的解决方案,但该网站似乎没有Flash库。然而,它确实有这样的优势。如果您查看第4节,
ID3v2 frame overview
,您将看到帧头包括帧的大小,而不包括帧头。我相信可以安全地假设图像大小可以从那里计算出来
我假设你知道ID3v2标签是如何工作的。如果您不这样做,我建议您至少粗略地看一下规范。基本上,有一个标题,一个扩展标题,然后是一个或多个包含标记数据的帧(每个数据一帧),最后是填充
编辑:出于测试目的,我在十六进制编辑器中打开了一个带有已知标记数据的MP3。找到名为APIC
的帧,将指定的字节数复制到新文件中,并将其保存为test.jpg
。不太管用
再进一步挖掘,我发现了那个。具体而言,第4.14节,所附图片
,其中描述了帧的排序“副标题”(1字节文本编码、零分隔mimetype、1字节图片类型和零分隔描述)。因此,我从数据中删除了这些信息,并将剩余部分复制到一个新的jpg上,Windows能够显示这个jpg
因此,技术是:
- 从帧头获取帧大小
- 解析出帧子标题的帧开头并将其删除。(4到无限字节之间的任意位置)
- 根据剩余字节数计算图像大小