【摘要】Exif就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。简单地说,Exif=JPEG+拍摄参数。因此,你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。

确保php在编译的时候已经开启了exif,如:–enable-exif

查看php是否已经支持exif模块,可以通过phpinfo()查看,也可以通过命令行方式:

php -i | grep -i exif

exif

EXIF Support => enabled

EXIF Version => 1.4 $Id$

Supported EXIF Version => 0220

exif.decode_jis_intel => JIS => JIS

exif.decode_jis_motorola => JIS => JIS

exif.decode_unicode_intel => UCS-2LE => UCS-2LE

exif.decode_unicode_motorola => UCS-2BE => UCS-2BE

exif.encode_jis => no value => no value

exif.encode_unicode => ISO-8859-15 => ISO-8859-15

1

2

3

4

5

6

7

8

9

10

11

php-i|grep-iexif

exif

EXIFSupport=>enabled

EXIFVersion=>1.4$Id$

SupportedEXIFVersion=>0220

exif.decode_jis_intel=>JIS=>JIS

exif.decode_jis_motorola=>JIS=>JIS

exif.decode_unicode_intel=>UCS-2LE=>UCS-2LE

exif.decode_unicode_motorola=>UCS-2BE=>UCS-2BE

exif.encode_jis=>novalue=>novalue

exif.encode_unicode=>ISO-8859-15=>ISO-8859-15

下面是一个php读取exif的函数

php_exif_test.php

header("Content-Type: text/html; charset=utf-8");

function getExif($img){

#$exif = exif_read_data($img, 'IFD0');

$exif = exif_read_data($img);

return array (

'文件名' => $exif['FileName'],

'文件类型' => $exif['FileType'],

'器材品牌' => $exif['Make'],

'器材' => $exif['Model'],

'快门' => $exif['ExposureTime'],

'光圈' => $exif['FNumber'],

'焦距' => $exif['FocalLength'],

'感光度' => $exif['ISOSpeedRatings'],

'文件格式' => $exif['MimeType'],

'时间戳' => $exif['DateTime'],

'图片说明' => $exif['ImageDescription'],

'方向1' => $exif['Orientation'],

'方向2' => $Orientation[$exif['Orientation']],

'水平分辨率' => $exif['XResolution'].$exif['ResolutionUnit'],

'垂直分辨率' => $exif['YResolution'].$exif['ResolutionUnit'],

'作者' => $exif['Artist'],

# 'YCbCr位置控制' => $YCbCrPositioning[$exif['YCbCrPositioning']],

# 'YCbCr位置控制' => $exif['YCbCrPositioning'],

'版权' => $exif['Copyright'],

'Exif版本' => $exif['ExifVersion'],

'拍摄分辨率高' => $exif['COMPUTED']['Height'],

'拍摄分辨率宽' => $exif['COMPUTED']['Width'],

'拍摄时间' => $exif['DateTimeOriginal'],

);

}

$exif = getExif('pic1.jpg');

echo '

';

print_r($exif);

echo '

';

?>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

php_exif_test.php

header("Content-Type: text/html; charset=utf-8");

functiongetExif($img){

#$exif = exif_read_data($img, 'IFD0');

$exif=exif_read_data($img);

returnarray(

'文件名'=>$exif['FileName'],

'文件类型'=>$exif['FileType'],

'器材品牌'=>$exif['Make'],

'器材'=>$exif['Model'],

'快门'=>$exif['ExposureTime'],

'光圈'=>$exif['FNumber'],

'焦距'=>$exif['FocalLength'],

'感光度'=>$exif['ISOSpeedRatings'],

'文件格式'=>$exif['MimeType'],

'时间戳'=>$exif['DateTime'],

'图片说明'=>$exif['ImageDescription'],

'方向1'=>$exif['Orientation'],

'方向2'=>$Orientation[$exif['Orientation']],

'水平分辨率'=>$exif['XResolution'].$exif['ResolutionUnit'],

'垂直分辨率'=>$exif['YResolution'].$exif['ResolutionUnit'],

'作者'=>$exif['Artist'],

#        'YCbCr位置控制' => $YCbCrPositioning[$exif['YCbCrPositioning']],

#        'YCbCr位置控制' => $exif['YCbCrPositioning'],

'版权'=>$exif['Copyright'],

'Exif版本'=>$exif['ExifVersion'],

'拍摄分辨率高'=>$exif['COMPUTED']['Height'],

'拍摄分辨率宽'=>$exif['COMPUTED']['Width'],

'拍摄时间'=>$exif['DateTimeOriginal'],

);

}

$exif=getExif('pic1.jpg');

echo'

';

print_r($exif);

echo'

';

?>

执行结果如下:

图片一:

(

[文件名] => pic1.jpg

[文件类型] => 2

[器材品牌] => Canon

[器材] => Canon EOS 5D Mark II

[快门] => 1/25

[光圈] => 14/10

[焦距] => 35/1

[感光度] => 2000

[文件格式] => image/jpeg

[时间戳] => 2013-07-24T13:43:47+08:00

[图片说明] =>

[方向1] =>

[方向2] =>

[水平分辨率] => 350/12

[垂直分辨率] => 350/12

[作者] => Photographer: Fisher

[版权] => Copyright:clycsz3

[Exif版本] => 0220

[拍摄分辨率高] => 500

[拍摄分辨率宽] => 750

[拍摄时间] => 2013:07:04 01:12:22

)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

(

[文件名] => pic1.jpg

[文件类型] => 2

[器材品牌] => Canon

[器材] => Canon EOS 5D Mark II

[快门] => 1/25

[光圈] => 14/10

[焦距] => 35/1

[感光度] => 2000

[文件格式] => image/jpeg

[时间戳] => 2013-07-24T13:43:47+08:00

[图片说明] =>

[方向1] =>

[方向2] =>

[水平分辨率] => 350/12

[垂直分辨率] => 350/12

[作者] => Photographer: Fisher

[版权] => Copyright:clycsz3

[Exif版本] => 0220

[拍摄分辨率高] => 500

[拍摄分辨率宽] => 750

[拍摄时间] => 2013:07:04 01:12:22

)

图片二

(

[文件名] => pic2.jpg

[文件类型] => 2

[器材品牌] => Exif

[器材] => II*

[快门] => 1111490560/15

[光圈] => 1111490560/15

[焦距] => 1111490560/15

[感光度] => 100

[文件格式] => image/jpeg

[时间戳] =>

[图片说明] =>

[方向1] => 1

[方向2] =>

[水平分辨率] => 16795209/12079598092

[垂直分辨率] => 18432/691327992

[作者] =>

[版权] =>

[Exif版本] => 0230

[拍摄分辨率高] => 915

[拍摄分辨率宽] => 1400

[拍摄时间] =>

)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

(

[文件名] => pic2.jpg

[文件类型] => 2

[器材品牌] => Exif

[器材] => II*

[快门] => 1111490560/15

[光圈] => 1111490560/15

[焦距] => 1111490560/15

[感光度] => 100

[文件格式] => image/jpeg

[时间戳] =>

[图片说明] =>

[方向1] => 1

[方向2] =>

[水平分辨率] => 16795209/12079598092

[垂直分辨率] => 18432/691327992

[作者] =>

[版权] =>

[Exif版本] => 0230

[拍摄分辨率高] => 915

[拍摄分辨率宽] => 1400

[拍摄时间] =>

)

发现第二张图片有些参数取出来的值不对:

[器材品牌] => Exif

[器材] => II*

怀疑是几种原因导致,一是相机设备的exif信息比较新,php的exifi模块无法读取;二是图片被编辑过,部分exif信息被破坏。

下面提供linux下的一个command方式读取exif信息的工具–ImageMagick,ubuntu和centos下都有。

如CentOS下的安装方式: yum install ImageMagick

/usr/bin/identify -verbose pic1.jpg | grep -i exif

exif:ApertureValue: 970854/1000000

exif:Artist: Photographer:Fisher

exif:Copyright: Copyright:clycsz3

exif:DateTime: 2013-07-24T13:43:47+08:00

exif:DateTimeDigitized: 2013:07:04 01:12:22

exif:DateTimeOriginal: 2013:07:04 01:12:22

exif:ExifImageLength: 500

exif:ExifImageWidth: 750

exif:ExifOffset: 276

exif:ExifVersion: 48, 50, 50, 48

exif:ExposureBiasValue: 0/1

exif:ExposureMode: 0

exif:ExposureProgram: 3

exif:ExposureTime: 1/25

exif:Flash: 16

exif:FNumber: 14/10

exif:FocalLength: 35/1

exif:FocalPlaneResolutionUnit: 2

exif:FocalPlaneXResolution: 3861000/1459

exif:FocalPlaneYResolution: 2574000/958

exif:ISOSpeedRatings: 2000

exif:Make: Canon

exif:MaxApertureValue: 1/1

exif:MeteringMode: 5

exif:Model: Canon EOS 5D Mark II

exif:ResolutionUnit: 2

exif:SceneCaptureType: 0

exif:ShutterSpeedValue: 4643856/1000000

exif:Software: Adobe Photoshop CS6 Windows

exif:SubSecTime: 08

exif:SubSecTimeDigitized: 08

exif:SubSecTimeOriginal: 08

exif:WhiteBalance: 0

exif:XResolution: 350/1

exif:YResolution: 350/1

Profile-exif: 708 bytes

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

/usr/bin/identify-verbosepic1.jpg|grep-iexif

exif:ApertureValue:970854/1000000

exif:Artist:Photographer:Fisher

exif:Copyright:Copyright:clycsz3

exif:DateTime:2013-07-24T13:43:47+08:00

exif:DateTimeDigitized:2013:07:0401:12:22

exif:DateTimeOriginal:2013:07:0401:12:22

exif:ExifImageLength:500

exif:ExifImageWidth:750

exif:ExifOffset:276

exif:ExifVersion:48,50,50,48

exif:ExposureBiasValue:0/1

exif:ExposureMode:0

exif:ExposureProgram:3

exif:ExposureTime:1/25

exif:Flash:16

exif:FNumber:14/10

exif:FocalLength:35/1

exif:FocalPlaneResolutionUnit:2

exif:FocalPlaneXResolution:3861000/1459

exif:FocalPlaneYResolution:2574000/958

exif:ISOSpeedRatings:2000

exif:Make:Canon

exif:MaxApertureValue:1/1

exif:MeteringMode:5

exif:Model:CanonEOS5DMarkII

exif:ResolutionUnit:2

exif:SceneCaptureType:0

exif:ShutterSpeedValue:4643856/1000000

exif:Software:AdobePhotoshopCS6Windows

exif:SubSecTime:08

exif:SubSecTimeDigitized:08

exif:SubSecTimeOriginal:08

exif:WhiteBalance:0

exif:XResolution:350/1

exif:YResolution:350/1

Profile-exif:708bytes

看上去还是比较好用的,看看程序上怎么方便处理和调用吧。

也可以跟http://exif.cn/对比一下,看看你取出来的exif信息是否正确。

linux查看照片命令,php 及 linux 命令行方式读取 图片 exif 信息相关推荐

  1. android拍照保存照片方向,android 拍照的照片方向问题,读取图片EXIF信息

    Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的.实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈.快门.白平衡.ISO.焦距.日期时间等各种和拍摄条件 ...

  2. 整理Linux查看系统日志的一些经常使用命令

    整理Linux查看系统日志的一些经常使用命令 last -a 把从何处登入系统的主机名称或ip地址,显示在最后一行. -d 指定记录文件.指定记录文件.将IP地址转换成主机名称. -f <记录文 ...

  3. Linux查看文件和日志的常用命令

    Linux查看文件和日志的常用命令 当项目部署和运行起来后,会产生很多的运行日志.日志的内容是程序里定义的重要输出信息,还有程序出错的报错信息. 查看日志文件大部分是去日志中获取一些数据,确认某些信息 ...

  4. Linux查看防火墙状态及开启关闭命令

    Linux查看防火墙状态及开启关闭命令 CentOS7 使用firewalld开启关闭防火墙与端口 systemctl 配置firewalld-cmd iptables CentOS6 Ubuntu ...

  5. kali中exiftool命令查看图片exif信息

    目录 kali中exiftool查看图片exif信息 1.安装exiftool 2.exiftool的使用 3例:查看图片exif kali中exiftool查看图片exif信息 注:还可以用来生成图 ...

  6. linux 查看 文档 不显示注释 命令

    原文:http://www.weiruoyu.cn/?p=661 最近发现一个很好的命令,就是linux 查看 文档 不显示注释 的命令 [root@localhost ha.d]# cat ha.c ...

  7. linux查看硬件和系统信息的相关命令简介

    [root@yufei ~] # uname -a               # 查看内核/操作系统/CPU信息的linux系统信息命令 [root@yufei ~] # head -n 1 /et ...

  8. linux 查看文件内容的几种命令

    最常使用的显示档案内容的指令可以说是 cat 与 more 及 less !此外,如果我们要查看一个很大型的档案(好几百MB时),但是我们只需要后端的几行字而已,那么该如何是好?可以使用 tail,此 ...

  9. linux查看进程运行日志文件,【Linux】常用指令、ps查看进程、kill杀进程、启动停止tomcat命令、查看日志、查看端口、find查找文件...

    1.说出 10 个 linux 常用的指令 1) ls 查看目录中的文件 2)cd /home 进入 '/ home' 目录:cd .. 返回上一级目录:cd ../.. 返回上两级目录 3)mkdi ...

  10. linux查看当前用户终端,Linux----基本命令的使用(vi命令,查看文件内容,显示进程,切换用户等)...

    1.vi是linux系统上经常使用的一个文本编辑器,其有三种模式:命令模式.编辑模式(插入模式).末行模式. 命令模式-->编辑模式:"i a o I A O"linux 编 ...

最新文章

  1. 服务器默认字符集 网页乱码,关于apache默认字符集乱码的问题
  2. CodePush使用调研
  3. 机器学习中为什么需要梯度下降_梯度下降直觉 - 机器是如何学习的
  4. php xls 邮件,PHPMailer发送邮件
  5. 前端学习(2738):重读vue电商网站48之通过 chainWebpack 自定义打包入口
  6. duilib消息事件产生和分发解释
  7. oracle数据库12下载地址,Oracle 数据库和补丁下载地址 12.1.0.2 11.2.0.4 11.2.0.1
  8. Size Balanced Tree
  9. 2021-08-26 转载 Scala快速入门系列博客文章
  10. delphi 标题栏相关操作
  11. win7安装后系统保留分区无法分配盘符导致无法激活原因
  12. Redis锁,悲观锁和乐观锁
  13. 中旅投资计划战略入股开元森泊,成为其第二大股东
  14. 计算机软件著作权材料模板
  15. CCF-CSP Python Cheat Sheet
  16. wolframalpha最新版_WolframAlpha安卓版中文最新版
  17. 移动端APP测试用例
  18. COMSOL混凝土细观模型之圆形骨料及界面过渡区ITZ建模教程
  19. 关于Lazyload加载图片几种方法的介绍
  20. matlab高斯拟合多峰,MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)

热门文章

  1. Android时间轴,RecyclerView实现
  2. 科技「垦荒」,AI护虎
  3. 金庸武侠内功排行榜TOP10
  4. google阅读器快捷键
  5. 你走后 爱情的遗址像是空城
  6. 沐阳从0到1零基础学习安卓逆向
  7. 2020博客之星年度总评选 - 显示排名
  8. matlab 绘制圆光栅,火爆抖音的圆点光栅画怎么做的?
  9. Linux搭建学习汇总
  10. [lighttpd]referer字段实现域名过滤及放行指定域名不走重定向