获取图片的EXIF信息
对于专业的摄影师来说,Exif信息是很重要的信息,也包含了非常多的东西
1.EXIF
EXIF(Exchangeable Image File)是“可交换图像文件”的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数、缩略图及其他属性信息。
Exif是一种图像文件格式,它的数据存储与JPEG格式是完全相同的。利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。
-
拍摄日期
-
拍摄器材(机身、镜头、闪光灯等)
-
拍摄参数(快门速度、光圈F值、ISO速度、焦距、测光模式等)
-
图像处理参数(锐化、对比度、饱和度、白平衡等)
-
图像描述及版权信息
-
GPS定位数据
-
缩略图
2.exif.js查看
下载地址:http://code.ciaoca.com/javascript/exif-js/
使用方法非常简单,引用脚本,使用api方法即可获取
API 方法如
名称 | 说明 |
---|---|
EXIF.getData(img, callback) |
获取图像的数据 能兼容尚未支持提供 EXIF 数据的浏览器获取到元数据。 |
EXIF.getTag(img, tag) | 获取图像的某个数据 |
EXIF.getAllTags(img) | 获取图像的全部数据,值以对象的方式返回 |
EXIF.pretty(img) | 获取图像的全部数据,值以字符串的方式返回 |
示例代码
EXIF.getData(document.getElementById('img'), function(){ EXIF.getAllTags(this); EXIF.getTag(this, 'Orientation'); });//img是image的id
缺点:每次都要多引用exif.js脚本,而且如果显示的是缩略图,就会捉襟见肘
3.exif类库
类库1
https://www.codeproject.com/articles/43665/exiflibrary-for-net
类库2
https://www.codeproject.com/Articles/27242/ExifTagCollection-An-EXIF-metadata-extraction-libr
我使用的是第二种,只因为源码简单
ExifTagCollection exif = new ExifTagCollection(@"c:\somefile.jpg"); foreach (ExifTag tag in exif) Console.Out.WriteLine(tag);
如果是在类库中使用,文件路径获取可使用以下方法
//获取当前应用程序域的基目录 AppDomain.CurrentDomain.BaseDirectory
3.exif在前端的使用
webuploader插件 前端实现图片旋转后上传(实践成功)
https://blog.csdn.net/qq_32953487/article/details/84873805
利用exif js及脚本修正图片的orientation显示
https://blog.csdn.net/cdnight/article/details/46457241
https://github.com/exif-js/exif-js
作者:心存善念
本文地址:https://www.cnblogs.com/xcsn/p/6786562.html
欢迎转载,请在明显位置给出出处及链接。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· 回顾我的软件开发经历(1)
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· .NET 9 new features-C#13新的锁类型和语义
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
2015-04-29 JS框架之收集专帖