内嵌图片原字节不同于截图
为什么原图片恢复应保留 payload、出处与重复记录,以及有限标签支持的实际取舍。
先判断最终需要什么
AaronD 想从已经购买的 FLAC 中保存独立图片,并在自己的后续回答中确认未修改的内嵌数据满足目的。MP3 提问者 k0pernikus 也需要独立保存封面,偏好命令行。两者支持同一个恢复终点,不证明浏览器偏好或市场规模。
播放器截图保存的是显示结果,可能含缩放或界面;重新导出图片也可能改变编码与附带数据。原字节恢复让以后编辑者自行决定是否转换,并始终可以回到音频原件。
相同字节不必合并为一张
两个普通 FLAC PICTURE 可含同字节图像但拥有不同出现位置。提取保留各自编号、描述、类型和偏移。APIC 描述的唯一规则不同,重复描述或重复图标应拒绝,不能静默去重掩盖冲突。
声明尺寸与可打开性是不同事实
不解码图片或音频。签名匹配的损坏图片仍原字节提取,打开时可能失败。FLAC 宽高、色深和颜色数只为源声明,不是核实后的图片尺寸;不声称验证音频 CRC、PCM 或可播放性。
保存了图片原字节不等于已经修复图片。原件、payload 哈希和绝对偏移可供你确认所取位置;真正的图片读取器决定能否打开。
| 问题 | 核对材料 | 可确认的信息 |
|---|---|---|
| 图片来自哪里? | pictures.json 中的源名称、偏移与哈希 | 原 payload 及其提取位置 |
| FLAC 声明了什么尺寸? | pictures.json 中的声明宽高 | 源声明;并非解码测量 |
| 图片能否打开? | 用图片读取器打开提取的 PNG/JPEG | 该读取器能否解码原 payload |
合法变换也可能超出合同
ID3 不同步机制可在磁盘中插入字节;压缩也会改变存储字节和逻辑 payload 的关系。工具明确拒绝这些合法类型,避免把未恢复的存储形态当原图片交付。未知帧或错误源使整批拒绝,取消没有部分 ZIP。
pictures.zip 包含每份音频原件、全部编号图片及完整 pictures.json/pictures.csv。JSON、CSV 各限 4 MiB,ZIP 限 128 MiB;更严格输入限制已支配这些保护性输出预算。CSV 文字加前导单引号,JSON 与原始十六进制保留精确值。
- 核对出处时使用音频原件和完整 JSON。
- 使用 pictures.csv 查看图片清单;文字原值保留在 JSON。
- 提取后如需修复或转换,请处理另存的副本。
参考资料
- AaronD / original FLAC artwork recovery request
Full question, his separately attributed answer and comments reviewed. He confirms unmodified embedded data meets the goal. No source attachment, browser preference, region or demand scale supplied.
- k0pernikus / original MP3 image recovery request
Full original question and separately attributed answers/comments reviewed. CLI preference is recorded; no browser-use claim.
- RFC9639 / native FLAC metadata
Format correctness for PICTURE and the metadata chain; not a demand source.
- ID3v2.3 specification
APIC structure, UCS-2 and duplicate descriptor rules.
- ID3v2.4 frame specification
APIC descriptions, encodings and picture-type rules. Valid transformed frames remain outside this tool profile.
本分类工具使用说明
展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。
提取音频内嵌原图片从本地 FLAC/MP3 提取每份内嵌 PNG/JPEG 原字节,保留音频原件、完整结构 JSON/CSV 和 ZIP。
选择带内嵌图片的原音频,按出现顺序保存每份原始图片字节;查看所有出处行,再下载含原件和完整报告的 ZIP。
操作步骤
- 选择 1–4 个音频原件。
- 开始提取;查看所有图片类型、描述、偏移与哈希行。
- 下载 pictures.zip,分别打开编号图片。
- 用完整 JSON/CSV 核对来源;保留音频原件以便复查。
能力与限制
- 每批 1–4 个原生 FLAC 或 MP3;单文件 50 MiB、原件合计 100 MiB,UTF-8 文件名最多 512 字节。保留原件并使用你有权处理的文件。
- 只支持原生 FLAC PICTURE 与 MP3 文件头 ID3v2.3.0/2.4.0 APIC;图片 MIME 与 PNG/JPEG 字节签名必须对应。APIC 的 png/jpeg 简写可用。正封面、封底及批量图片属于同一提取任务。
- 最多 128 张图片;单 payload 4 MiB、全部图片 16 MiB、4096 条 metadata 记录;每条描述最多 4096 原字节、描述总量 262144 原字节。ID3v2.3 描述另限 64 字符。
- FLAC 描述严格采用 UTF-8;APIC v2.3 支持 Latin-1 与带 BOM 的 UCS-2,v2.4 支持 Latin-1、带 BOM 的 UTF-16、UTF-16BE 和 UTF-8。完整文字与描述原始十六进制保存在 JSON。
- 未知或保留 metadata、外链图片、未知帧、嵌套或额外标签、重复 APIC 描述及重复图标使整批拒绝。普通 FLAC 图片可重复,同字节图片也各自保留。
- 不同步、压缩、加密、分组、数据长度指示、扩展头、实验标志和 footer 均不支持,即使文件本身合法也会拒绝;不猜测反填充、不修复、不悄悄跳过标签。
- 不解码图片或音频。签名匹配的损坏图片仍原字节提取,打开时可能失败。FLAC 宽高、色深和颜色数只为源声明,不是核实后的图片尺寸;不声称验证音频 CRC、PCM 或可播放性。
- pictures.zip 包含每份音频原件、全部编号图片及完整 pictures.json/pictures.csv。JSON、CSV 各限 4 MiB,ZIP 限 128 MiB;更严格输入限制已支配这些保护性输出预算。CSV 文字加前导单引号,JSON 与原始十六进制保留精确值。
- 无上传、远程 URI 抓取、缩放或重编码。任一畸形、不支持或超预算输入均不产生部分 ZIP;取消丢弃未完成产物。