尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

node-exif Exif 解析完整指南:三步给照片建好元数据归档系统

node-exif Exif 解析完整指南:三步给照片建好元数据归档系统 node-exif Exif 解析完整指南三步给照片建好元数据归档系统【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers找老照片时你是不是也抓狂过这张照片什么时候拍的用哪台相机光圈快门是多少答案其实一直藏在文件里——那就是 Exif 元数据。node-exifnpm 包名exif是一款面向 Node.js 的轻量级 Exif 解析库专门从 JPEG 照片里读出相机型号、光圈快门、GPS 位置、拍摄时间等信息。这篇文章带你把它用起来先看它到底能读出什么再讲怎么装、怎么调最后按三条实际工作流落地附一份避坑清单。先认清家底一张照片里藏着六类数据相机保存 JPEG 时会在像素之外再塞一份档案。node-exif 解析后把这份档案归成6 大类返回类别关键字段典型内容图片信息image相机品牌型号、方向Orientation、分辨率、后期软件、版权内嵌缩略图thumbnail缩略图数据的偏移与长度拍摄参数exif光圈、快门、ISO、焦距、原始拍摄时间位置信息gps经度、纬度、拍摄日期、GPS 时间互操作性interoperabilityEXIF 版本兼容信息厂商信息makernote各品牌私有参数富士、奥林巴斯、松下等以项目里的这张红苹果样张为例看似普通的一张图过一遍 node-exif 后相机型号、曝光参数、拍摄时间这些字段就能被逐条读出来归档素材就齐了测试用例也能说明问题。sony-alpha-6000.jpg里能读出 Sony ILCE-6000、ISO 100、F8、6 秒长曝光、33mm 等效焦距连镜头型号E PZ 16-50mm F3.5-5.6 OSS都写得明明白白。安装与调用三种姿势拿数据一条命令装好npm install exif核心调用就一行把图片交给ExifImagenew ExifImage({ image: photo.jpg }, (error, exifData) { console.log(error ? error.message : exifData); });除了传文件路径还有另外两种用法调用方式适用场景new ExifImage({ image: a.jpg }, cb)本地批量处理直接传路径new ExifImage({ image: buffer }, cb)处理上传到服务器的文件流exif.loadImage(path, cb)一个实例复用连续解析多张图核心实现在lib/exif/ExifImage.js支持maxEntries、fixThumbnailOffset等选项做精细控制。实战一一条命令批量提取拍摄参数建好归档索引 ️把一整个旅行相册丢进去循环解析把相机型号、光圈、快门、焦距逐条写入 CSV 或数据库就是一份可检索的参数档案。拿测试图evil1.jpg打个样Canon PowerShot S400 拍摄、时间2003:05:24 16:40:33、曝光 0.125 秒、F2.8、焦距 7.4mm甚至记录着后期软件Adobe Photoshop 7.0。这些字段正是归档系统里最有检索价值的部分。实战二三步修正方向不对的照片 手机照片经常倒着、横着显示——像素本身没转正确姿态由 Exif 的Orientation字段描述。测试图right.jpg就是典型像素是竖排的但字段标记Orientation: 8说明要逆时针转 90° 才正。处理流程三步走完用 node-exif 读出image.Orientation按规则旋转1 正常、6 顺时针 90°、8 逆时针 90° 等落盘一份方向已修正的副本用户端就再也不会看到倒图。实战三把 GPS 坐标串成地理时间线 带定位的照片会在gps字段里返回经度、纬度、GPS 日期与时间。测试图short-ascii-II.jpg小米 MI3 拍摄4208×3120 像素就有完整数据拍摄日期2015:02:28、GPS 时间 9:10:49。坐标入库后玩法就多了地图上按坐标聚类拼出旅行足迹按 GPS 时间戳排序自动还原拍摄顺序接逆地理编码把坐标翻译成拍摄于 XX 城市的标签。避坑清单动手前花一分钟看完 ⚠️只认 JPEGPNG 等格式没有 Exif 容器批量前先过滤一遍。makernote 要容错个别厂商私有格式解析可能返回 error捕获住即可不影响其他字段。各品牌的解析逻辑集中在lib/exif/makernotes/目录目前内置 AGFA、Epson、富士、奥林巴斯、松下、三洋六家。Buffer 字段先转换ExifVersion、ColorSpace等字段以 Buffer 形式返回展示前记得转成字符串或数值。给不可信文件上保险解析来路不明的图片时设置maxEntries防止异常超大结构拖慢服务。时间格式要入库前处理DateTimeOriginal是YYYY:MM:DD HH:MM:SS冒号格式直接存库会埋雷先转成标准时间格式。写在最后包的基本信息见package.json更多用法细节看README.md。node-exif 的 API 简单到几乎没有学习成本归档参数、校正方向、串起地理时间线照片元数据管理系统的三块核心积木它一次就给了你。【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表