exif信息

C# 获取图片的EXIF 信息

若如初见. 提交于 2020-03-16 06:37:25
C# 获取图片的EXIF 信息 分类: 自创 2010-04-10 12:48 1793人阅读 评论 (8) 收藏 举报 c# string byte image 制造 算法 关于 EXIF 信息的介绍。 1 EXIF,是英文Exchangeable Image File(可交换图像文件)的缩写。EXIF是一种图像文件格式,只是文件的后缀名为jpg。EXIF信息是由数码相机在拍摄过程中采集一系列的信息,然后把信息放置在jpg文件的头部,也就是说EXIF信息是镶嵌在JPEG图像文件格式内的一组拍摄参数,主要包括摄影时的光圈、快门、ISO、日期时间等各种与当时摄影条件相关的讯息,相机品牌型号,色彩编码,拍摄时录制的声音以及全球定位系统(GPS)等信息。不管是硬件厂商的配套软件还是专业名门的看图工具,所有这些软件都是为了方便数码摄影者能更方便地保存查看摄影图像的重要信息。 2 如何获取EXIF信息 在.NET中,我们可以用PropertyItem对象来获取jpg 图片的EXIF信息。取得PropertyItem很简单。 Image img = Image.FromFile("支持Exif的图片文件路径"); PropertyItem[] pt = img.PropertyItems; 这样就可以了,Exif信息都已载入到PropertyItem数组中了。其中PropertyItem的ID

如何处理iOS中照片的方向

自闭症网瘾萝莉.ら 提交于 2020-03-12 19:22:13
使用过iPhone或者iPad的朋友在拍照时不知是否遇到过这样的问题,将设备中的照片导出到Windows上时,经常发现导出的照片方向会有问题,要么横着,要么颠倒着,需要旋转才适合观看。而如果直接在这些设备上浏览时,照片会始终显示正确的方向,在Mac上也能正确显示。最近在iOS的开发中也遇到了同样的问题,将拍摄的照片上传到服务器后,再由Windows端下载该照片,发现手机上完全正常的照片到了这里显示的横七竖八。同一张照片为什么在不同的设备上表现的不同?如何能够避免这种情况?本文将和大家一一解开这些问题。 目录 照片的存储演变 胶片时代 数码时代 方向传感器 EXIF(Exchangeable Image File Format) Orientation iPhone上的情况 验证EXIF Mac平台 Windows平台 开发时如何避免 直观的解决方案 第二种简单的方法 结尾 照片的存储演变 一切都得从相机的发展开始说起。 胶片时代 一般相机拍摄出来的画面都是长方形,在拍摄的那一瞬间,它会将取景器中的场景对应的颜色值存到对应的像素位置。相机本身并没有任何方向的概念,只是使用者想要拍摄的场景在他期望的照片中显示的方式与实际存在差异时,才有了方向一说。如下图,对一个场景F进行拍摄,相机的方向可能会有这样四个常见的角度: 相机是“自私”的,由于相机仅反应真实的场景,它不理解拍摄的内容

JPEG文件头分析

北城余情 提交于 2020-03-11 02:37:07
JPEG文件头分析 说明 jiff和exif的基本样式 jiff app0标记段 exif app1标记段 SOF标记段 解析jpeg 说明 1 jpeg是一种压缩标准,大幅度缩小数据流,jpeg以FF D8开头,FF D9结束。 2 jpeg图像由多个maker组成,多个maker+compressed组成了jpeg。 3 jiff是一种在万维网上进行jpeg传输的格式,可以理解是对jpeg图片的封装,符合jpeg标准,jiff的maker是app0,记录了图像的基本信息,也可能有缩略图。jiff格式比较老,老式的数码相机使用此格式。 4 exif新比较新的jpeg封装格式,exif的maker是app1,记录了更多的东西,如ISP信息、GPS信息、相机信息,图像旋转等等 5 jiff和exif可以共存,很多jpeg图像都有app0的jiff段和app1的exif段 jiff和exif的基本样式 jiff app0标记段 exif app1标记段 SOF标记段 此标记段解析图像宽高 解析jpeg 1 libjpeg开源库只能解析jiff格式的jpeg,不过jiff格式比较简单,我们也可以根据格式自己解析。 2 jhead可以解析exif格式的jpeg,exif标记段比较复杂,信息较多,参考了此开源库做了解析。 来源: CSDN 作者: 木木林19 链接: https://blog

获取图片Exif信息

倾然丶 夕夏残阳落幕 提交于 2019-12-29 01:11:57
问题:手机照片上传时,会发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题;而Android不会出现这种现象。 原因:ios系统默认Orientation属性为1,与常规机器拍摄图片的Orientation属性不一致。 方案:读取文件Exif信息,获取Orientation属性,修改Orientation属性为0。 Orientation属性属性说明如下: 旋转角度 参数 0° 1 顺时针90° 6 逆时针90° 8 180° 3 读取Exif信息: (依赖:metadata-extractor-2.10.1.jar,xmpcore-5.1.2.jar) package img; import java.io.*; import java.util.Collection; import java.util.Iterator; import com.drew.imaging.ImageMetadataReader; import com.drew.metadata.*; import com.drew.metadata.exif.ExifIFD0Directory; /** * 获取图片exif信息 * @date 2018年1月30日 下午8:29:32 * @see http://blog.csdn.net/z69183787/article/details

Android 图片Exif信息相关的获取与修改

余生长醉 提交于 2019-12-29 01:06:21
1 Exif是什么   Exif是一种图像文件格式,它的数据存储于JPEG格式是完全相同的,实际上Exif格式就是JPEG格式头插入了 数码照片的信息,包括拍摄的光圈、快门、平衡白、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码以及GPS等。简单来 说,Exif=拍摄参数+JPED。因此,可以利用任何可以查看JPEG文件的看图软件浏览Exif信息,但是并不是所有图形程序都能处理Exif信息, 而自Android2.0之后,加入了对图片Exif数据的支持。 2 ExifInterface类介绍   在Android下,通过ExifInterface类操作图片的Exif信息,虽然这个类的名字包含Interface,但它不是一个接口, 它是一个类,处于"android.media.ExifInterface"包下,是媒体库的一部分功能的实现。ExifInterface有一个构造 函数,接受一个String类型的数据,此为读取图片文件的地址。   Exif数据在图片中可以理解为Key-value键值对的方式存储,一般通过如下几个方法操作:   String getAttribute(String tag):获取图片中属性为tag的字符串值。   double getAttribute(String tag,double defaultValue)

Android -- Exif

走远了吗. 提交于 2019-12-29 01:05:12
Exif Exif是一种图像文件格式,它的数据存储于JPEG格式是完全相同的,实际上Exif格式就是JPEG格式头插入了数码照片的信息,包括拍摄的光圈、快门、平衡白、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码以及GPS等。 ExifInterface 在Android下,通过ExifInterface类操作图片的Exif信息,虽然这个类的名字包含Interface,但它不是一个接口,它是一个类,处于"android.media.ExifInterface"包下,是媒体库的一部分功能的实现。ExifInterface有一个构造函数,接受一个String类型的数据,此为读取图片文件的地址。 Exif数据在图片中可以理解为Key-value键值对的方式存储,一般通过如下几个方法操作: String getAttribute(String tag)//获取图片中属性为tag的字符串值。 double getAttribute(String tag,double defaultValue)//获取图片中属性为tag的double值。 int getAttributeInt(String tag,defaultValue//获取图片中属性为tag的int值。 void setAttribute(String tag,String value)//根据输入参数

(四十三)获取图片exif信息

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-29 01:04:22
1、什么是Exif Exif是一种图像文件格式,它的数据存储于JPEG格式是完全相同的,实际上Exif格式就是JPEG格式头插入了数码照片的信息,包括拍摄的光圈、快门、平衡白、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码以及GPS等。简单来说,Exif=拍摄参数+JPED。因此,可以利用任何可以查看JPEG文件的看图软件浏览Exif信息,但是并不是所有图形程序都能处理Exif信息,而自Android2.0之后,加入了对图片Exif数据的支持。 2、ExifInterface 在Android下,通过ExifInterface类操作图片的Exif信息,虽然这个类的名字包含Interface,但它不是一个接口,它是一个类,处于"android.media.ExifInterface"包下,是媒体库的一部分功能的实现。ExifInterface有一个构造函数,接受一个String类型的数据,此为读取图片文件的地址。   Exif数据在图片中可以理解为Key-value键值对的方式存储,一般通过如下几个方法操作:   String getAttribute(String tag):获取图片中属性为tag的字符串值。   double getAttribute(String tag,double defaultValue):获取图片中属性为tag的double值。  

微信能从图片获取位置信息,原理其实很简单

本小妞迷上赌 提交于 2019-12-29 00:44:36
iOS版微信有一项功能:当你在朋友圈发照片的时候,就可以根据照片的拍摄地点显示地理位置。 在微信朋友圈上传图片时,点击位置可以自动识别照片拍摄的地理位置 过去我们发送朋友圈时,可以显示自己所在的位置信息,而现在自动读取照片拍摄位置让不少人联想到了图像识别技术。事实上,微信所做的并没有这么复杂,有业内人士告诉新功能是基于图片位置信息(即Exif的GPS定位信息)实现的。 什么是Exif? Exif(Exchangeable Image File)是一种图像文件格式,它最早是由日本电子和信息技术协会(JEITA)为相机相机厂商制定一套标准。 现在,任何一部手机拍出的照片都有一组Exif参数,Exif除了有像素信息之外,还包含了光圈、快门、白平衡、ISO、焦距、日期时间等各种图像信息以及相机品牌、型号、色彩编码、拍摄时录制的声音以及GPS全球定位系统数据。 理论上,只要不经过特殊处理,每张图片的Exif信息会一直保留。 微信做了什么? 微信这次的新功能很有可能就是调用了Exif中的GPS全球定位系统数据,这些数据都来自于手机内部的传感器以及陀螺仪。 雷锋网在某Exif查看器上对手机拍摄的照片进行了试验,结果显示只要图片未被压缩,日期时间、拍照设备型号、像素以及光圈快门等信息都能记录下来,而位置信息则需要用户打开GPS才能展现出来。 如上图所示,Exif涵盖的位置信息有经度、纬度以及海拔

如何处理iOS中照片的方向

假装没事ソ 提交于 2019-12-29 00:22:04
使用过iPhone或者iPad的朋友在拍照时不知是否遇到过这样的问题,将设备中的照片导出到Windows上时,经常发现导出的照片方向会有问题,要么横着,要么颠倒着,需要旋转才适合观看。而如果直接在这些设备上浏览时,照片会始终显示正确的方向,在Mac上也能正确显示。最近在iOS的开发中也遇到了同样的问题,将拍摄的照片上传到服务器后,再由Windows端下载该照片,发现手机上完全正常的照片到了这里显示的横七竖八。同一张照片为什么在不同的设备上表现的不同?如何能够避免这种情况?本文将和大家一一解开这些问题。 目录 照片的存储演变 胶片时代 数码时代 方向传感器 EXIF(Exchangeable Image File Format) Orientation iPhone上的情况 验证EXIF Mac平台 Windows平台 开发时如何避免 直观的解决方案 第二种简单的方法 结尾 照片的存储演变 一切都得从相机的发展开始说起。 胶片时代 一般相机拍摄出来的画面都是长方形,在拍摄的那一瞬间,它会将取景器中的场景对应的颜色值存到对应的像素位置。相机本身并没有任何方向的概念,只是使用者想要拍摄的场景在他期望的照片中显示的方式与实际存在差异时,才有了方向一说。如下图,对一个场景 F 进行拍摄,相机的方向可能会有这样四个常见的角度: 相机是“自私”的,由于相机仅反应真实的场景,它不理解拍摄的内容

图片方向 image orientation Exif

不想你离开。 提交于 2019-12-22 00:10:55
更新 : 2019-01-02 refer https://stackoverflow.com/questions/3129099/how-to-flip-images-horizontally-with-html5 (使用 canvas 做 flip) https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/scale 之前没有说到关于 flip 的概念 当我们用手机自拍时, 屏幕中我们看见的是镜子中的自己,并不是别人眼中的自己哦. 那拍出来的图片也会有这个 exif information 按理说我们在拍摄时屏幕出现的结果就应该是最终图像的结果,但是自拍 = 镜子中的你,显然有点怪,自己看不起怪,别人看就怪怪的 所以一般上遇到这类的图片我们需要 flip, 反向回去. 上面 2 个 refer 是说 canvas 如果做到这个效果, 在 crop 图的时候可以用上. asp.net core 用 Magick.NET 这个库,里头也是有 .flip() 这个功能. 注 :不同手机对图片的处理是不同的 比如 iphone 自拍是没有 2,4,5,7 的,iphone 会先 flip 然后在 rotate 然后修改掉 exif, 比如你自拍 2, iphone 输出的图片是 3