EXIF / PNG / WebP 元数据编辑器
纯本地处理的在线元数据编辑器,直接操作图片二进制结构。 JPEG:支持删除 GPS 定位、删除个人信息(Artist / Copyright / 序列号)、 删除 MakerNote、删除缩略图、删除软件信息、 修改拍摄时间、一键清除全部 EXIF。 PNG:支持清理 tEXt / zTXt(自动解压)/ iTXt(含压缩 iTXt 自动解压)文本元数据(Software / Author / Copyright / Description 等)、 修改 tIME 时间、清除 eXIf chunk、仅保留关键 chunk, 编辑前后 chunk 列表可视化对比(按类型或摘要搜索过滤,辅助 chunk 可点击展开查看原始字节 hex dump)。 WebP:支持编辑 RIFF 容器内的 EXIF chunk(复用 JPEG IFD 结构,全部 EXIF 操作可用)、 清除全部元数据(同时删除 EXIF / XMP / ICCP chunk),chunk 列表与 hex dump 同样可用。 支持批量处理多文件并打包 ZIP 下载,编辑预设保存与导入导出。 不修改图像压缩数据(JPEG SOS..EOI / PNG IDAT / WebP VP8 位流),保证图像质量无损。 编辑前后元数据可视化对比,一目了然。在浏览器本地完成全部操作,零上传、零追踪、可离线使用。
编辑预设
保存常用的编辑操作组合,下次一键加载。预设存储在浏览器本地(localStorage),不会上传。
暂无已保存的预设。
常见问题
EXIF 编辑是否在本地处理?会上传图片吗?
是的,全部在浏览器本地处理,图片不离开浏览器。本工具自主实现图片
二进制结构解析与重建:文件通过 FileReader.arrayBuffer() 读取为字节,
对 JPEG 按标记(marker)顺序遍历段结构,定位 APP1 EXIF 段,解析 TIFF / IFD 字段树;
对 PNG 按 chunk 顺序遍历,识别 tEXt / iTXt / tIME / eXIf 等辅助 chunk;
对 WebP 按 RIFF 容器遍历 chunk,识别 EXIF / XMP / ICCP 等元数据 chunk。
按编辑操作修改字节并修正结构(JPEG 修正 IFD 条目计数 / PNG 重算每个 chunk 的 CRC32 /
WebP 重算 RIFF 文件大小字段),最后重建字节流。全程零网络请求,可在浏览器开发者工具 Network 面板确认。
EXIF 编辑会损失图像质量吗?
不会。本工具仅修改图片的元数据段,不触碰图像压缩数据: JPEG 不修改 SOS 扫描数据段到 EOI 之间的压缩字节流,PNG 不修改 IDAT 压缩数据 chunk, WebP 不修改 VP8 / VP8L / VP8X 等位流 chunk。 JPEG 的图像质量由 DCT 量化与哈夫曼编码决定,PNG 的图像质量由 IDAT 中的 zlib 压缩流决定, WebP 的图像质量由 VP8 / VP8L 位流决定,这些数据完整保留。 编辑后的图像与原图在像素级别完全一致,仅元数据字段被删除或修改。 可以理解为"换了个文件头",图像本体不变。
支持哪些编辑操作?分别删除什么字段?
本工具支持 7 种编辑操作(按文件类型自动启用其中适用的子集):
- 删除 GPS 定位(JPEG 与 WebP):移除 IFD0 中的 GPSIFDPointer(0x8825)与整个 GPSIFD,
包括 GPSLatitude / GPSLongitude / GPSAltitude / GPSImgDirection 等所有 GPS 标签
- 删除个人信息(JPEG / PNG / WebP):JPEG / WebP 移除 Artist / Copyright / BodySerialNumber /
CameraOwnerName / LensSerialNumber 等身份相关字段;PNG 移除 Author / Artist / Copyright / Source
等 tEXt / zTXt / iTXt 关键字(含压缩的 zTXt/iTXt,按关键字过滤无需解压)
- 删除 MakerNote(JPEG 与 WebP):移除 ExifIFD 中的 MakerNote(0x927C),
厂商原始数据块通常体积较大,删除可显著减小文件
- 删除缩略图(JPEG 与 WebP):移除 IFD1(缩略图 IFD)及其嵌入的 JPEG 缩略图数据,
将 IFD0 的 nextIfdPointer 置 0
- 删除软件信息(JPEG / PNG / WebP):JPEG / WebP 移除 Software 标签(0x0131),
如 "Adobe Photoshop CC 2024" 等编辑器痕迹;PNG 移除关键字为 Software 的 tEXt / zTXt / iTXt 条目
- 修改拍摄时间(JPEG / PNG / WebP):JPEG / WebP 同步修改 DateTime / DateTimeOriginal /
DateTimeDigitized 三个字段;PNG 修改或插入 tIME chunk(7 字节:年/月/日/时/分/秒)
- 清除全部 EXIF(JPEG / PNG / WebP):JPEG 移除整个 APP1 EXIF 段;
PNG 仅保留 IHDR / PLTE / IDAT / IEND 等关键 chunk,移除所有辅助 chunk;
WebP 删除 EXIF / XMP / ICCP 三类元数据 chunk,仅保留 VP8 / VP8L / VP8X 等位流 chunk
上传 PNG 时,不适用操作(GPS / MakerNote / 缩略图)会自动从操作列表中隐藏。
上传无 EXIF chunk 的 WebP 时(仅含 XMP / ICCP),仅保留「清除全部 EXIF」操作。
修改拍摄时间支持哪些格式?
JPEG EXIF 时间标准格式为 YYYY:MM:DD HH:MM:SS(注意是冒号分隔日期)。
本工具同时支持以下输入格式:
- 2026:07:18 14:30:00(标准 EXIF 格式)
- 2026-07-18 14:30:00(ISO 风格分隔符)
- 2026-07-18T14:30:00(ISO 8601 风格)
JPEG 修改会同步写入 IFD0.DateTime(0x0132)、ExifIFD.DateTimeOriginal(0x9003)、
ExifIFD.DateTimeDigitized(0x9004)三个字段,确保各查看器显示一致。
WebP 文件与 JPEG 一致,同步修改上述三个字段(WebP EXIF chunk 复用 JPEG IFD 结构)。
PNG 文件则会删除原有的 tIME chunk(若存在),在 IEND 之前插入新的 tIME chunk
(7 字节:年 2 字节大端 + 月/日/时/分/秒各 1 字节)。
PNG 文件如何处理?与 JPEG 编辑有什么差异?
本工具同时支持 JPEG 与 PNG 两种格式的元数据编辑,但两者容器格式与元数据机制差异较大:
- JPEG:通过 APP1 段嵌入 EXIF(含 GPS / 拍摄参数 / 个人信息 / 缩略图 / MakerNote),
是 EXIF 的主要载体。本工具采用"原地置零 + 修正 IFD 计数"策略,保留段结构,可选择性删除字段
- PNG:元数据通过辅助 chunk 承载,主要包括:
tEXt / zTXt / iTXt(文本元数据,常见关键字 Software / Author / Copyright / Title / Description / Source)、
tIME(最后修改时间)、eXIf(PNG 1.5+ 扩展的 EXIF chunk,实际使用率低)。
zTXt 为 zlib 压缩文本,本工具使用浏览器原生 DecompressionStream('deflate') 自动解压后展示内容,
与 tEXt 一同按关键字分组参与编辑(removePersonal / removeSoftware 同样适用于 zTXt)。
iTXt 为国际化文本(UTF-8 编码,可压缩),本工具同样支持自动解压:
未压缩 iTXt 直接 UTF-8 解码;压缩 iTXt(compressionFlag=1)使用与 zTXt 相同的 DecompressionStream('deflate')
解压路径,解压后按 UTF-8 解码(注意 iTXt 文本编码为 UTF-8,与 zTXt 的 Latin1 不同)。
iTXt 关键字在压缩数据之前为 Latin1 ASCII,applyPngEdits 中按关键字过滤时无需解压,保持同步避免性能损失。
因 PNG chunk 通过 CRC32 校验关联,本工具采用"过滤重建"策略——
过滤掉要删除的 chunk,重建时为每个保留的 chunk 重算 CRC32,保证文件结构合法
chunk 列表对比与搜索过滤:上传 PNG 后右侧会展示完整 chunk 列表(类型 / 字节数 / 摘要),
关键 chunk(IHDR / PLTE / IDAT / IEND)以蓝色徽章标记,辅助 chunk 以灰色徽章标记。
编辑前后并排展示,可直观看到被删除的 chunk 与 chunk 总数变化。
支持按 chunk 类型(如 "tEXt" / "IDAT")或摘要内容(如 "Author" / "默认背景色")实时搜索过滤,
输入框位于列表上方,输入即过滤,显示匹配数量,无匹配时显示空状态提示。
搜索大小写不敏感,同时匹配类型代码与摘要内容,便于在大型 PNG 中快速定位特定 chunk。
辅助 chunk 原始字节 hex dump:辅助 chunk 行可点击展开,显示 chunk 原始字节的 hex dump 视图
(标准格式:偏移 / 16 字节 hex / ASCII 三栏,每行 16 字节,hex 大写)。
点击 ▶ 图标或行体任意位置即可展开,再次点击折叠;也支持键盘 Enter / Space 展开/折叠。
关键 chunk(IHDR / PLTE / IDAT / IEND)不可展开(压缩数据 hex dump 无意义)。
为避免大型 chunk 拖慢渲染,单 chunk 超过 1024 字节时截断展示前 1024 字节,
并提示"完整数据请下载原文件查看"。
支持差异:PNG 不支持 GPS / MakerNote / 缩略图操作(PNG 容器无对应字段),
上传 PNG 时操作列表会自动隐藏这些不适用项。
其他格式(TIFF / HEIC)暂不支持,建议先用
图片格式转换工具 转为 JPEG / PNG / WebP 再编辑。
WebP 文件如何处理?与 JPEG 编辑有什么差异?
本工具支持 WebP 格式的元数据编辑(第 112 轮新增)。WebP 使用 RIFF 容器格式,
元数据通过独立 chunk 承载,主要包括:
- EXIF chunk:与 JPEG APP1 EXIF 段格式完全一致('Exif\0\0' 前缀 + TIFF 头 + IFD 树),
是 WebP 中 EXIF 元数据的主要载体
- XMP chunk:XML 格式的可扩展元数据平台
- ICCP chunk:ICC 色彩配置文件
编辑策略:
- 有 EXIF chunk 的 WebP:复用 JPEG 的 IFD 编辑逻辑(parseExifSegment 解析 →
applyEdits 操作 → rebuildExifPayload 重建),全部 7 种编辑操作可用(与 JPEG 完全一致)。
编辑时仅替换 EXIF chunk 数据,不触碰 VP8 / VP8L / VP8X / ALPH 等位流 chunk
- 无 EXIF chunk 的 WebP(仅含 XMP / ICCP):仅支持「清除全部 EXIF」操作
(会同时删除 EXIF / XMP / ICCP 三类元数据 chunk),其他操作因依赖 IFD 结构自动隐藏
- 清除全部 EXIF:删除所有 EXIF / XMP / ICCP chunk,仅保留 VP8 / VP8L / VP8X / ALPH / ANIM / ANMF
等关键位流 chunk
与 JPEG 的差异:
- WebP chunk 无 CRC32 校验(与 PNG 不同),重建时仅重算 RIFF 文件大小字段(4 字节小端)
- WebP EXIF chunk 数据若为奇数长度,需补 1 字节 0x00 padding(RIFF 规范要求 chunk 起始偏移为偶数)
- WebP 不修改 VP8 / VP8L / VP8X 位流,保证图像质量无损(与 JPEG 不修改 SOS..EOI 同理)
- 部分非标准 WebP 文件的 EXIF chunk 数据可能直接以 TIFF 头('II' / 'MM')开头,缺少 'Exif\0\0' 前缀,
本工具会自动补齐前缀后再解析,兼容性良好
chunk 列表与 hex dump:上传 WebP 后右侧会展示完整 chunk 列表(与 PNG 一致的 UI),
关键 chunk(VP8 / VP8L / VP8X / ALPH / ANIM / ANMF)以蓝色徽章标记,
辅助 chunk(EXIF / XMP / ICCP)以灰色徽章标记,可点击展开查看 hex dump。
"清除全部 EXIF" 与单独勾选所有删除操作有什么区别?
两者效果相近但实现不同:
- 清除全部 EXIF:JPEG 直接移除整个 APP1 EXIF 段(marker + length + payload),
PNG 仅保留 IHDR / PLTE / IDAT / IEND 关键 chunk 移除所有辅助 chunk,
WebP 删除 EXIF / XMP / ICCP 三类元数据 chunk(仅保留 VP8 / VP8L / VP8X 等位流 chunk),
最彻底,体积节省最大。但 JPEG / WebP 会同时丢失 IFD0 中可能想保留的 Orientation(方向)等基础字段,
可能导致部分图片显示方向异常
- 单独勾选删除操作:JPEG / WebP 保留 EXIF 段结构,仅置零被删除条目的 tag 并修正计数,
可选择性删除敏感字段而保留 Orientation 等基础字段,更精细;
PNG 保留其他辅助 chunk(如 cHRM / sRGB / pHYs / iCCP 等颜色管理 chunk),仅删除被勾选的 tEXt / iTXt / tIME
建议:日常使用优先勾选"删除 GPS + 个人信息 + MakerNote"组合
(JPEG / WebP)或"删除个人信息 + 软件信息"组合(PNG),
既保护隐私又保留图像基础元数据;需要彻底清除时再选"清除全部 EXIF"。
PNG chunk 列表的 hex dump 是什么?如何使用?
hex dump 是查看二进制数据的标准格式,将原始字节以"偏移 + 16 字节 hex + ASCII 字符"三栏形式展示。
本工具在 PNG chunk 列表中为辅助 chunk(如 tEXt / zTXt / iTXt / tIME / eXIf / bKGD / pHYs 等)
提供 hex dump 展开能力,便于开发者与高级用户深入分析 chunk 内部结构。
使用方式:
- 展开:点击辅助 chunk 行任意位置,或点击行首的 ▶ 图标,行展开后图标变为 ▼
- 折叠:再次点击行任意位置或 ▼ 图标
- 键盘操作:使用 Tab 键聚焦到可展开的辅助 chunk 行(聚焦后有蓝色焦点环),
按 Enter 或 Space 展开/折叠,符合 WCAG 2.2 无障碍标准
显示格式:每行 16 字节,分两组 8 字节(组间额外空格);偏移列为 8 位 hex 大写;
hex 字节为大写;ASCII 列中可打印字符(0x20-0x7E)原样显示,不可打印字符用 . 替换
截断策略:为避免大型 chunk(如体积较大的压缩 zTXt 或 iTXt)拖慢渲染,
单 chunk 超过 1024 字节时仅展示前 1024 字节,
并显示橙色提示"显示前 N 字节,共 M 字节,完整数据请下载原文件查看"。
1024 字节足够覆盖绝大多数辅助 chunk(典型 tEXt / tIME / bKGD 等均在数百字节以内)
不可展开的 chunk:关键 chunk(IHDR / PLTE / IDAT / IEND)不提供展开能力。
IDAT 是图像压缩数据,体积通常数十 KB 到数 MB,hex dump 无意义;
IHDR / PLTE / IEND 虽小但结构固定,摘要已展示全部关键信息。
空数据 chunk(dataLength=0)也不提供展开能力(无数据可显示)
典型用途:
- 验证 tEXt 关键字与文本内容是否符合 PNG 规范(keyword \0 text 结构)
- 查看 zTXt 压缩前的原始字节(含 compressionMethod 字节)
- 检查 iTXt 的语言标签与翻译关键字字段布局
- 分析 tIME chunk 的 7 字节时间结构(年/月/日/时/分/秒)
- 排查非标准 chunk 类型(OTHER 分类)的实际数据格式
hex dump 与搜索过滤独立工作,可先搜索定位再展开查看,便于在大型 PNG 中精确分析。
编辑后的图片兼容性如何?所有看图软件都能正常打开吗?
兼容性良好。
JPEG:采用"原地修改"策略,保留 JPEG 段顺序、保留 IFD 字节结构、
仅置零被删除条目的 tag 字段并修正 IFD 计数。这是 EXIF 规范允许的处理方式,
所有主流看图软件(Windows 照片、macOS 预览、Adobe 系列、Google Photos、各手机相册)
均能正确识别与跳过空条目。
PNG:采用"过滤重建"策略,重建时严格遵循 PNG 规范——
保留 8 字节签名 + 关键 chunk(IHDR / PLTE / IDAT / IEND)顺序 + 辅助 chunk 位置约束,
每个保留的 chunk 都重算 CRC32。生成的 PNG 文件结构完全合法,
所有主流看图软件均可正常解析与显示。
WebP:采用"chunk 替换"策略,仅替换 EXIF chunk 数据或删除辅助 chunk,
保留 RIFF 文件头与 VP8 / VP8L / VP8X 等位流 chunk 不变,重算 RIFF 文件大小字段。
奇数长度的 EXIF chunk 自动补 1 字节 0x00 padding(RIFF 规范要求)。
生成的 WebP 文件结构完全合法,所有主流看图软件(Chrome / Firefox / Edge / Safari /
Windows 照片 / macOS 预览等)均可正常解析与显示。
极少数老旧或非标准的 EXIF 读取器可能仍尝试解析 JPEG / WebP 置零的条目(虽然 tag=0 应被跳过),
若遇到兼容问题,建议改用"清除全部 EXIF"直接移除整个 APP1 段(JPEG)或 EXIF chunk(WebP)。
批量处理最多支持多少文件?处理速度如何?
本工具未设置硬性文件数量上限,但建议单批不超过 200 个文件以获得最佳体验。
单文件大小限制为 50MB,总数据量受浏览器内存限制(通常 1-2GB)。
处理速度参考:单个 JPEG(含 GPS + MakerNote + 缩略图,约 5MB)的编辑耗时通常在 5-30ms 之间;
单个 PNG(含 tEXt / tIME,约 5MB)的编辑耗时通常在 5-25ms 之间(PNG 因需重算 CRC32 略有开销);
单个 WebP(含 EXIF chunk,约 5MB)的编辑耗时通常在 5-25ms 之间(与 JPEG 接近,复用 IFD 编辑逻辑);
批量处理 100 个文件的总耗时通常在 1-3 秒内。
处理策略:批量处理时按文件签名自动分流到 JPEG / PNG / WebP 三个队列并行处理,
每处理 5 个文件会通过 setTimeout(0) 让出主线程一次,
避免长时间阻塞 UI;单文件异常不会中断整批处理,会在结果列表中标记为失败。
处理完成后可一键打包为 ZIP 下载(采用 STORE 模式无压缩,避免重复编码图像数据)。
编辑预设保存在哪里?换浏览器会丢失吗?
预设保存在浏览器的 localStorage 中,与具体的浏览器 + 域名绑定。
- 同一浏览器同一域名下,预设会持久保留,关闭页面或重启浏览器都不会丢失
- 切换浏览器、切换设备、或使用隐私模式(无痕窗口)时预设不会同步
- 浏览器清理缓存 / Cookie 时预设可能被清除
备份方案:预设面板支持「导出全部预设」按钮,可将全部预设导出为 JSON 文件
保存到本地。新设备上通过「导入预设」按钮加载 JSON 文件即可恢复(采用合并模式,
同名预设会跳过,不会覆盖现有预设)。
上限:单个浏览器最多保存 20 个预设,超出时自动按 LRU 策略淘汰最久未使用的预设。
批量处理时如何选择编辑操作?和单文件模式有关联吗?
批量处理与单文件模式共享同一组编辑操作配置。
典型工作流:
1. 在「单文件编辑」Tab 中上传一张代表性图片(JPEG / PNG / WebP),勾选所需的编辑操作
(如 JPEG / WebP 选删除 GPS + 个人信息 + MakerNote,PNG 选删除个人信息 + 软件信息)
2. 切换到「批量处理」Tab,顶部「当前编辑操作」会显示已勾选的操作列表
3. 添加多个 JPEG / PNG / WebP 文件(可混合添加),点击「执行批量编辑」
4. 处理完成后可下载 ZIP 包,包含全部成功处理的结果文件
批量分流:批量处理时按文件签名(JPEG SOI 0xFFD8 / PNG 8 字节签名 / WebP RIFF 文件头)
自动分流到 JPEG / PNG / WebP 三个队列分别处理,再按原顺序合并结果。同一批可混合 JPEG / PNG / WebP。
预设加速:若经常使用相同的编辑组合,可在「编辑预设」面板保存为预设
(如命名"分享前清理"),下次直接点击「应用」按钮恢复配置,无需重复勾选。
与 EXIF 信息查看器有什么区别?应该怎么协同使用?
两个工具互补:
- EXIF 信息查看器:基于 exifr 库只读解析,
支持 JPEG / PNG / WebP / TIFF / HEIC 多格式,查看完整 EXIF / IPTC / XMP / ICC 元数据,
用于"看看这张图有哪些元数据"
- EXIF / PNG / WebP 元数据编辑器(本工具):自主实现二进制结构操作,
支持 JPEG / PNG / WebP,支持删除 / 修改元数据字段,用于"删除某些敏感元数据"
典型工作流:先用 EXIF 查看器确认图片含哪些元数据 → 用本工具按需删除
GPS / 个人信息 / MakerNote(JPEG / WebP)或 tEXt / zTXt / iTXt / tIME(PNG)→ 下载编辑后的图片 →
再次用查看器验证删除结果。