PHP中利用EXIF函数集来显示单反照片的EXIF信息
要成功做到能用EXIF函数显示单反EXIF信息需要一下几个不步骤:
1.修改php.ini的exif相关信息
2.继续修改php.ini信息,找到以下模块,将带exif的配置属性前的;号去掉,然后重启apache
3.验证php确实开启了exif模块成功,利用以下代码
<?php echo phpinfo(); ?> |
如果看到显示下图,则表示成功开启了exif模块,这样我们就可以开始利用其函数集了
4.开始写相关类(或函数,是别人封装好的,我个人觉得这个合适),如下,大家可以自己自行修改其中代码以供自己使用
<?php function GetImageInfoVal($ImageInfo,$val_arr) { $InfoVal = “未知”; foreach($val_arr as $name=>$val) { if ($name==$ImageInfo) { $InfoVal = &$val; break; } } return $InfoVal; } function GetImageInfo($img) { $imgtype = array(“”, “GIF”, “JPG”, “PNG”, “SWF”, “PSD”, “BMP”, “TIFF(intel byte order)”, “TIFF(motorola byte order)”, “JPC”, “JP2”, “JPX”, “JB2”, “SWC”, “IFF”, “WBMP”, “XBM”); $Orientation = array(“”, “top left side”, “top right side”, “bottom right side”, “bottom left side”, “left side top”, “right side top”, “right side bottom”, “left side bottom”); $ResolutionUnit = array(“”, “”, “英寸”, “厘米”); $YCbCrPositioning = array(“”, “the center of pixel array”, “the datum point”); $ExposureProgram = array(“未定义”, “手动”, “标准程序”, “光圈先决”, “快门先决”, “景深先决”, “运动模式”, “肖像模式”, “风景模式”); $MeteringMode_arr = array( “0” => “未知”, “1” => “平均”, “2” => “中央重点平均测光”, “3” => “点测”, “4” => “分区”, “5” => “评估”, “6” => “局部”, “255” => “其他” ); $Lightsource_arr = array( “0” => “未知”, “1” => “日光”, “2” => “荧光灯”, “3” => “钨丝灯”, “10” => “闪光灯”, “17” => “标准灯光A”, “18” => “标准灯光B”, “19” => “标准灯光C”, “20” => “D55”, “21” => “D65”, “22” => “D75”, “255” => “其他” ); $Flash_arr = array( “0” => “flash did not fire”, “1” => “flash fired”, “5” => “flash fired but strobe return light not detected”, “7” => “flash fired and strobe return light detected”, ); $exif = exif_read_data ($img,”IFD0″); |
5.写测试代码
<?php header(“content-type:text/html;charset=utf-8”); $filename = “test.jpg”; require ‘pic.class.php’; $new_img_info = GetImageInfo($filename); //echo $new_img_info; foreach ($new_img_info as $key=> $section) { echo $key.”:”.$section.” “; } ?> |
6.结果如图所示
文件信息:—————————–
文件名:test.jpg 文件类型:JPG 文件格式:image/jpeg 文件大小:477883 时间戳:2014-03-07 14:53:57 图像信息:—————————– 图片说明:SONY DSC 制造商:SONY 型号:DSLR-A900 方向:top left side 水平分辨率:2400000/10000英寸 垂直分辨率:2400000/10000英寸 创建软件:Adobe Photoshop CS6 (Windows) 修改时间:2014:01:13 14:02:59 作者: YCbCr位置控制: 版权: 摄影版权: 编辑版权: 拍摄信息:—————————– Exif版本:0221 FlashPix版本:Ver. 0.00 拍摄时间:2014:01:10 12:06:40 数字化时间:2014:01:10 12:06:40 拍摄分辨率高:806 拍摄分辨率宽:1210 光圈:761471/100000 快门速度:7965784/1000000 快门光圈:f/14.0 最大光圈值:F434/100 曝光时间:1/250 F-Number:14/1 测光模式:评估 光源:未知 闪光灯:未知 曝光模式:自动 白平衡:自动 曝光程序:光圈先决 曝光补偿:-7/10EV ISO感光度:100 分量配置:RGB 图像压缩率:Bits/Pixel 对焦距离:m 焦距:120/10mm 等价35mm焦距:12mm 用户注释编码: 用户注释: 色彩空间:Uncalibrate*本5文来源gaodai$ma#com搞$$代**码)网@ Exif图像宽度:4032 Exif图像高度:6048 文件来源:digital still camera 场景类型:A directly photographed image 缩略图文件格式: 缩略图Mime格式: |
至此,一个简单利用exif函数集来显示图片的exif信息的模块就出来了.