PHP中读取照片exif信息的方法
Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快
先来了解什么是图片的Exif信息
Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。简单地说,Exif=JPEG+拍摄参数。因此,你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。
以上引自百度百科。
读取照片的exif在很多时候都没有必要,但相对于一些探讨摄影技术的站点,那么读取照片的exif信息就显得尤为重要了,比如摄影论坛蜂鸟。
截图自蜂鸟论坛,红圈信息部分就是程序读取照片的exif信息。我们把图片下载到本地,使用光影魔术手打开图片看看它的Exif信息,当BG然除了光影还有很多工具都能查看图片的Exif值。
除了Exif信息里的镜头值读不出来以外其余的值都能正确读出来。
开启PHP模块
默认情况下,PHP读取图片Exif信息模块是不开启的,我们需要先开启这个模块。
开启Exif模块需要mbstring支持,所以先来安装mbstring,以下是以Linux环境为例,其它环境类似。
安装mbstring模块
首先找到php源码包位置,直接进入ext/mbstring,执行以下命令安装,具体参数得看自己的环境。
arrays :指定了是否每个区段都成为一个数组。sections COMPUTED,THUMBNAIL 和COMMENT 区段总是成为数组,因为它们里面包含的名字和其它区段冲突。
thumbnail : 当设定为 TRUE 时,读取缩略图本身。否则只读取标记数据。
我们来读取一张图片的exif信息试试
通过PHP模块读取的Exif信息偶尔会错,或者信息不全,这种情况下,我们可以通过第三方工具。然后利用php执行系统linux命令读取