图片信息查看器 在浏览器里打开一张图片, 打印文件真实内容: 文件名, 格式, 宽高, 人类可读的文件大小, 宽高比, 像素, JPEG 还有 EXIF 块: 相机, 拍摄日期, ISO, 光圈, 快门, 焦距, GPS 位置. 文件不上传; 本地读取, 浏览器解码, 页面加载完即可离线使用. 本文跟随一张照片 photo.jpg, 4032 x 3024 的 JPEG, 3.00 MB, 走完工具打印的每个面板, 结尾是五个决定页面显示或不显示内容的行为.
文件面板打印什么
文件面板取解码后的图片与 File 对象, 打印六行. 格式行读 MIME 类型映射标签 JPEG, PNG, WebP, GIF, BMP, SVG, AVIF, TIFF, HEIC 或 HEIF, 类型缺失时回退大写文件扩展名, 再回退 Unknown. 宽高来自解码后的位图: 浏览器报告 naturalWidth 4032 与 naturalHeight 3024, 不是文件头里的数字. 大小行小于 1 KB 打印裸字节, 小于 1 MB 一位小数 KB, 以上两位小数 MB, 3145728 字节打印 3.00 MB. 宽高比行除以最大公约数, 4032 与 3024 的公约数是 1008, 打印 4:3 而不是原始对. 像素行乘两个维度取一位小数: 12.2 MP. 若要缩小文件, 图片压缩器 同样本地优先, 保存前显示字节节省.
为什么只有 JPEG 有 EXIF 区
EXIF 解析只在文件类型 image/jpeg 时开始. 解析器从图像起始标记开始遍历 JPEG 标记, 找前六个载荷字节为 Exif 加两个零字节的 APP1 段, 然后查 TIFF 头: 字节序标记, 魔数 42, 首个 IFD 的偏移. 任一缺失即停, 面板显示无 EXIF 提示. 其他格式完全跳过解析, 显示另一条提示 "EXIF data is only available in JPEG images", 即使容器技术上携带元数据. 遍历也在 start of scan 标记处停止, 因为图像数据开始后没有元数据可读.
标签怎么读
主 IFD 携带基础标签: 厂商, 型号, 方向, 分辨率, 拍摄日期, 以及一组曝光回退标签. 两个指针标签打开存相机数据的子目录: 标签 8769 指向 Exif IFD, 真实相机把曝光时间, 光圈值, ISO 速度, 焦距写在这里, 并覆盖 IFD0 回退值; 标签 8825 指向 GPS 目录, 存经纬度参考字母与度分秒值. 方向值 1 到 8 映射 Normal 到 Rotate 90 CW 的标签, 范围外打印带原始值的 unknown 标签. ISO 速度在多数相机上成对写入, 工具保留第一个非零项, 本照片是 200. 色彩空间标签值 1 打印 sRGB, 其他打印 Adobe RGB; IFD 截断时循环安静停止而不抛错.
快门, 光圈与焦距
三行曝光数据先格式化再上屏. 光圈打印 f/ 加光圈值, 2.8 变 f/2.8. 快门取秒数露光时间: 小于 1 的按倒数取整打印分数, 0.04 变 1/25s; 大于等于 1 的按 2s 样式打印; 存储的零或负值原样打印. 焦距打印数字加 mm, 35 mm 定焦显示 35 mm. 本工作示例: Canon EOS R6, 日期 2026:07:14 09:30:00, 方向 6, 面板读 ISO 200, f/2.8, 1/25s, 35 mm.
GPS 怎么变成地图链接
GPS 目录每个坐标存三个有理数(度, 分, 秒)加参考字母. 工具转十进制: 分加 60 分之一, 秒加 3600 分之一, 所以北纬 31 度 14 分 36 秒 = 31 + 14/60 + 36/3600 = 31.243333, 东经 121 度 28 分 47 秒 = 121.479722. 两者都打印 6 位小数加字母. 两个值下面是 View on map 链接指向 Google Maps, 构建 URL 时南纬取负, 西经取负, 南半球或西半球坐标落在正确一侧. 换容器再分享前, 图片转换器 本地重编码并让你选目标格式.
工具从不做什么
最后说边界. 图片从不上传: 预览是本地 object URL, 换新文件或组件卸载时撤销, 唯一离开机器的链接是可点的地图链接, 由你主动点击. EXIF 区只在 make, model, 拍摄日期, ISO, 焦距, GPS 至少一项存在时出现, 所以剥掉元数据的 JPEG 打印宽高行与无 EXIF 提示, 不是空网格. 浏览器无法解码文件时, 面板复位到空上传态. 从这里可以缩放同一文件到像素预算, 查看字节数含义, 先裁图再分享, 手算宽高比, 或从同一本地图片生成应用图标.