获取图片的EXIF信息

对于专业的摄影师来说,Exif信息是很重要的信息,也包含了非常多的东西

1.EXIF

EXIF(Exchangeable Image File)是“可交换图像文件”的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数、缩略图及其他属性信息。

Exif是一种图像文件格式,它的数据存储与JPEG格式是完全相同的。利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python】AnaConda安装错误解决方法

https://www.anaconda.com/ 官网下载啥事没有!

贪心问题的基本性质

首先确定一个前提 该问题是或可能满足 最优子结构,greedy选择性 最优子结构是说。。子结构一定能对全局最优解作贡献(?) greedy选择性应该是说。。如果当前我们不贪心地选本来看上去或者就是正确的决策an 那么我们得到结果s,只要证明交换an得到s比不交换更好&#…

Hbase读写数据的原理解析

目录1、体系图写数据的流程(参考上图):读数据的流程(参考下图): 目录 1、体系图 针对上图的一些解释: 这里面数据分区(region)存储是为了查询方便(即因为是…

anaconda来创建python环境

Anacond下载 下载地址:https://www.anaconda.com/download/ 管理虚拟环境 接下来我们就可以用anaconda来创建我们一个个独立的python环境了.接下来的例子都是在命令行操作的,请打开你的命令行吧. activate activate 能将我们引入anaconda设定的虚拟环境中, 如果你后…

Zookeeper的简介及命令行操作

目录前言1、Zookeeper简介2、Zookeeper结构3、Zookeeper常用的命令行操作 总结: 目录 前言 作为一款第三方的协调服务框架,ZK被应用在许多地方,如:Hbase中用于存储-ROOT表的位置信息;Storm中用于保存任务分配的信息、…

移动端开发文章导航

1. 微信企业号 微信企业号 介绍微信企业号 获取AccessToken微信企业号 获取用户信息微信企业号 JS-SDK:上传图片2. 微信公众号 微信公众号 订阅号与服务号的区别微信公众号 几种移动端UI框架介绍转载于:https://www.cnblogs.com/polk6/p/6217835.html

打开cmd窗口新技巧get

1.在当前目录下,按住shift键点击右键,选择在此处打开命令窗口 很多时候我们需要打开命令行然后进入到相应目录进行一些操作。 常规的做法是: WinR打开运行窗口输入"cmd"回车打开命令行窗口 假如我们要进入的是D盘foo文件夹下的一个bar子文件夹&#xff0c…

【python】pycharm启动 一直index,无法运行

花了几个小时找相关资料,按网上提供答案操作,依然没有解决, 最后让它自动更新完才好(大概更新了十分钟 有固态情况) 参考链接 pycharm启动后总是不停的updating indices...indexing? pycharm 启动后一直更新index的问题

Zookeeper集群角色分配原理

ZK内部存在Leader和Follower两个角色,那么这两种角色是怎样划分呢?或者说是怎么样被选举出来呢?以下将详细介绍ZK内部的选举机制。 ZK是通过内部的选举算法来选出Leader。(服务器需要配置对应的ID和文件)如下图所示&a…

2016大数据发展7大趋势

1.算法(Algorithms)的崛起 大数据已过时,算法正当道。数据已经成为一种商品,每个组织都能够收集和存储大量的数据。分析大数据也不再那么引人注目了。每个组织都可以聘用或培训大数据分析人员来了解数据模式。 2016年,…

请编写一个方法,实现整数的乘法、减法和除法运算(这里的除指整除)。只允许使用加号。

方法思路 乘法:a*b就等于b个a相加。题目也说了不考虑性能。 减法:a-b就等于a(-1)*b;就等于a加上b的相反数,得到b的相反数就解决了。 除法:a/bn;就是说有n个b相加小于等于a;可以采用b一直加,直到大于a结束。…

MySQL数据库重点概要总结

目录前言:1、结构化查询语言(Structured Query Language)简称SQL。2、基本SELECT语句语法3、多表链接4、笛卡尔积5、ANSI SQL ANSI SQL:1999标准的连接语法6、单行函数和分组函数的区别:7、分组函数8、SQL语句的执行顺序:9、子查询…

《MySQL排错指南》——1.9 许可问题

本节书摘来自异步社区出版社《MySQL排错指南》一书中的第1章,第1.9节,作者:【美】Sveta Smirnova(斯维特 斯米尔诺娃),更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.9 许可问题 MySQL有复杂的…

毕业半年,码过5个城市

时间飞逝,半年前我还在想我的毕业设计要怎么做,还在担心自己的答辩能够拿多少分,而此刻我正在成都写我喜欢的代码,过着我想过的生活。毕业半年,码过5个城市,从厦门->太原-》合肥-》北京-》成都。2016是我…

python ---单例(Singleton)

单例(Singleton) 单例是一种 设计模式 ,应用该模式的类只会生成一个实例。 单例模式保证了在程序的不同位置都 可以且仅可以取到同一个对象实例 :如果实例不存在,会创建一个实例;如果已存在就会返回这个实例…

Oracle-11g-R2 RAC 环境下 GPnP Profile 文件

GPnP Profile 文件的作用&#xff1a; GPnP Profile 文件是一个保存于$GRID_HOME/gpnp/<hostname>/profiles/peer目录下的小型 XML 文件&#xff0c;名称为 profile.xml。其用于正确描述 RAC 每个节点的全局特性。每个节点上都会保存一个本地的 GPnP Profile&#xff0c;…

《Pro/ENGINEER野火版5.0从入门到精通》——2.5 设置零件单位

本节书摘来自异步社区《Pro/ENGINEER野火版5.0从入门到精通》一书中的第2章&#xff0c;第2.5节&#xff0c;作者 暴风创新科技&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.5 设置零件单位 由于不同国家单位制的不相同&#xff0c;在企业间合作或沟通…

元类被称为 Python 中的“深奥的巫术“

元类被称为 Python 中的“深奥的巫术”。尽管你需要用到它的地方极少&#xff08;除非你基于 zope 编程&#xff09;&#xff0c;可事实上它的基础理论其实令人惊讶地易懂。 一切皆对象 一切都有类型 “class”和“type”之间本质上并无不同 类也是对象 它们的类型是 type 以…

机器学习之必知开源数据集

之前看到的不错的文章&#xff0c;玩机器学习数据是关键&#xff0c;有了这些东西&#xff0c;你就不必再为没有数据而苦恼。 转自&#xff1a;https://www.toutiao.com/i6432197108580745730/ 目录UCIGoogleTrendsKaggleAWS公用数据集ImagenetMINIST/r/数据集其他数据集 目录…

PHP中header函数的用法及其注意重点是什么呢

1、使用header函数进行跳转页面&#xff1b; header(Location:.$url);  其中$url就是将要跳转的url了。 这种用法的注意事项有以下几点&#xff1a; •Location和":"之间不能有空格&#xff0c;否则会出现错误&#xff08;注释&#xff1a;我刚测试了&#xff0c;在…