php的exif扩展

来源:互联网 发布:免费图文设计软件 编辑:程序博客网 时间:2024/05/01 10:43
服务器配置说明:
1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号
2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前,使之首先加载*
3.找到[exif]段,把下面语句的分号去掉。
;exif.encode_unicode = ISO-8859-15
;exif.decode_unicode_motorola = UCS-2BE
;exif.decode_unicode_intel    = UCS-2LE
;exif.encode_jis =
;exif.decode_jis_motorola = JIS
;exif.decode_jis_intel    = JIS

不同的人可能需要不同的EXIF信息,下面这一段大家可以根据需要选用:
"文件名"                =>        $exif[FILE][FileName],
"文件类型"                =>        $imgtype[$exif[FILE][FileType]],
文件格式"                =>        $exif[FILE][MimeType],
"文件大小"                =>        $exif[FILE][FileSize],
"时间戳"                =>        date("Y-m-d H:i:s",$exif[FILE][FileDateTime]),
"图片说明"                =>        $exif[IFD0][ImageDescription],
"制造商"                =>        $exif[IFD0][Make],
"型号"                =>        $exif[IFD0][Model],
"方向"                =>        $Orientation[$exif[IFD0][Orientation]],
"水平分辨率"        =>        $exif[IFD0][XResolution].$ResolutionUnit[$exif[IFD0][ResolutionUnit]],
"垂直分辨率"        =>        $exif[IFD0][YResolution].$ResolutionUnit[$exif[IFD0][ResolutionUnit]],
"创建软件"                =>        $exif[IFD0][Software],
"修改时间"                =>        $exif[IFD0][DateTime],
"作者"                        =>        $exif[IFD0][Artist],
"YCbCr位置控制"        =>        $YCbCrPositioning[$exif[IFD0][YCbCrPositioning]],
"版权"                        =>        $exif[IFD0][Copyright],
"摄影版权"                =>        $exif[COMPUTED][Copyright.Photographer],
"编辑版权"                =>        $exif[COMPUTED][Copyright.Editor],
"Exif版本"                =>        $exif[EXIF][ExifVersion],
"FlashPix版本"        =>        "Ver. ".number_format($exif[EXIF][FlashPixVersion]/100,2),
"拍摄时间"                =>        $exif[EXIF][DateTimeOriginal],
"数字化时间"        =>        $exif[EXIF][DateTimeDigitized],
"拍摄分辨率高"        =>        $exif[COMPUTED][Height],
"拍摄分辨率宽"        =>        $exif[COMPUTED][Width],
"光圈"                        =>        $exif[EXIF][ApertureValue],
"快门速度"                =>        $exif[EXIF][ShutterSpeedValue],
"快门光圈"                =>        $exif[COMPUTED][ApertureFNumber],
"最大光圈值"        =>        "F".$exif[EXIF][MaxApertureValue],
"曝光时间"                =>        $exif[EXIF][ExposureTime],
"F-Number"                =>        $exif[EXIF][FNumber],
"测光模式"                =>        GetImageInfoVal($exif[EXIF][MeteringMode],$MeteringMode_arr),
"光源"                        =>        GetImageInfoVal($exif[EXIF][LightSource], $Lightsource_arr),
"闪光灯"                =>        GetImageInfoVal($exif[EXIF][Flash], $Flash_arr),
"曝光模式"                =>        ($exif[EXIF][ExposureMode]==1?"手动":"自动"),
"白平衡"                =>        ($exif[EXIF][WhiteBalance]==1?"手动":"自动"),
"曝光程序"                =>        $ExposureProgram[$exif[EXIF][ExposureProgram]],
"曝光补偿"                =>        $exif[EXIF][ExposureBiasValue]."EV",
"ISO感光度"                =>        $exif[EXIF][ISOSpeedRatings],
"分量配置"                =>        (bin2hex($exif[EXIF][ComponentsConfiguration])=="01020300"?"YCbCr":"RGB"),//'0x04,0x05,0x06,0x00'="RGB" '0x01,0x02,0x03,0x00'="YCbCr"
"图像压缩率"        =>        $exif[EXIF][CompressedBitsPerPixel]."Bits/Pixel",
"对焦距离"                =>        $exif[COMPUTED][FocusDistance]."m",
"焦距"                        =>        $exif[EXIF][FocalLength]."mm",
"等价35mm焦距"        =>        $exif[EXIF][FocalLengthIn35mmFilm]."mm",




PHP整理显示照片exif信息,绝对好东西。

* 获取图象信息的函数
*
* 一个全面获取图象信息的函数
*
* @access public
* @param string $img 图片路径
* @return array

< ?php /** * 获取图象信息的函数 * * 一个全面获取图象信息的函数 * * @access public * @param string $img 图片路径 * @return array */ 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");     if ($exif===false) {     $new_img_info = array ("文件信息" => "没有图片EXIF信息");     }     else     {     $exif = exif_read_data ($img,0,true);     $new_img_info = array (     "文件信息" => "-----------------------------",     "文件名" => $exif[FILE][FileName],     "文件类型" => $imgtype[$exif[FILE][FileType]],     "文件格式" => $exif[FILE][MimeType],     "文件大小" => $exif[FILE][FileSize],     "时间戳" => date("Y-m-d H:i:s",$exif[FILE][FileDateTime]),     "图像信息" => "-----------------------------",     "图片说明" => $exif[IFD0][ImageDescription],     "制造商" => $exif[IFD0][Make],     "型号" => $exif[IFD0][Model],     "方向" => $Orientation[$exif[IFD0][Orientation]],     "水平分辨率" => $exif[IFD0][XResolution].$ResolutionUnit[$exif[IFD0][ResolutionUnit]],     "垂直分辨率" => $exif[IFD0][YResolution].$ResolutionUnit[$exif[IFD0][ResolutionUnit]],     "创建软件" => $exif[IFD0][Software],     "修改时间" => $exif[IFD0][DateTime],     "作者" => $exif[IFD0][Artist],     "YCbCr位置控制" => $YCbCrPositioning[$exif[IFD0][YCbCrPositioning]],     "版权" => $exif[IFD0][Copyright],     "摄影版权" => $exif[COMPUTED][Copyright.Photographer],     "编辑版权" => $exif[COMPUTED][Copyright.Editor],     "拍摄信息" => "-----------------------------",     "Exif版本" => $exif[EXIF][ExifVersion],     "FlashPix版本" => "Ver. ".number_format($exif[EXIF][FlashPixVersion]/100,2),     "拍摄时间" => $exif[EXIF][DateTimeOriginal],     "数字化时间" => $exif[EXIF][DateTimeDigitized],     "拍摄分辨率高" => $exif[COMPUTED][Height],     "拍摄分辨率宽" => $exif[COMPUTED][Width],     /*     The actual aperture value of lens when the image was taken.     Unit is APEX.     To convert this value to ordinary F-number(F-stop),     calculate this value's power of root 2 (=1.4142).     For example, if the ApertureValue is '5', F-number is pow(1.41425,5) = F5.6.     */     "光圈" => $exif[EXIF][ApertureValue],     "快门速度" => $exif[EXIF][ShutterSpeedValue],     "快门光圈" => $exif[COMPUTED][ApertureFNumber],     "最大光圈值" => "F".$exif[EXIF][MaxApertureValue],     "曝光时间" => $exif[EXIF][ExposureTime],     "F-Number" => $exif[EXIF][FNumber],     "测光模式" => GetImageInfoVal($exif[EXIF][MeteringMode],$MeteringMode_arr),     "光源" => GetImageInfoVal($exif[EXIF][LightSource], $Lightsource_arr),     "闪光灯" => GetImageInfoVal($exif[EXIF][Flash], $Flash_arr),     "曝光模式" => ($exif[EXIF][ExposureMode]==1?"手动":"自动"),     "白平衡" => ($exif[EXIF][WhiteBalance]==1?"手动":"自动"),     "曝光程序" => $ExposureProgram[$exif[EXIF][ExposureProgram]],     /*     Brightness of taken subject, unit is APEX. To calculate Exposure(Ev) from BrigtnessValue(Bv), you must add SensitivityValue(Sv).     Ev=Bv+Sv Sv=log((ISOSpeedRating/3.125),2)     ISO100:Sv=5, ISO200:Sv=6, ISO400:Sv=7, ISO125:Sv=5.32.     */     "曝光补偿" => $exif[EXIF][ExposureBiasValue]."EV",     "ISO感光度" => $exif[EXIF][ISOSpeedRatings],     "分量配置" => (bin2hex($exif[EXIF][ComponentsConfiguration])=="01020300"?"YCbCr":"RGB"),//'0x04,0x05,0x06,0x00'="RGB" '0x01,0x02,0x03,0x00'="YCbCr"     "图像压缩率" => $exif[EXIF][CompressedBitsPerPixel]."Bits/Pixel",     "对焦距离" => $exif[COMPUTED][FocusDistance]."m",     "焦距" => $exif[EXIF][FocalLength]."mm",     "等价35mm焦距" => $exif[EXIF][FocalLengthIn35mmFilm]."mm",     /*     Stores user comment. This tag allows to use two-byte character code or unicode. First 8 bytes describe the character code. 'JIS' is a Japanese character code (known as Kanji).     '0x41,0x53,0x43,0x49,0x49,0x00,0x00,0x00':ASCII     '0x4a,0x49,0x53,0x00,0x00,0x00,0x00,0x00':JIS     '0x55,0x4e,0x49,0x43,0x4f,0x44,0x45,0x00':Unicode     '0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00':Undefined     */     "用户注释编码" => $exif[COMPUTED][UserCommentEncoding],     "用户注释" => $exif[COMPUTED][UserComment],     "色彩空间" => ($exif[EXIF][ColorSpace]==1?"sRGB":"Uncalibrated"),     "Exif图像宽度" => $exif[EXIF][ExifImageLength],     "Exif图像高度" => $exif[EXIF][ExifImageWidth],     "文件来源" => (bin2hex($exif[EXIF][FileSource])==0x03?"digital still camera":"unknown"),     "场景类型" => (bin2hex($exif[EXIF][SceneType])==0x01?"A directly photographed image":"unknown"),     "缩略图文件格式" => $exif[COMPUTED][Thumbnail.FileType],     "缩略图Mime格式" => $exif[COMPUTED][Thumbnail.MimeType]     );     }     return $new_img_info; }   $innerhtml = ""; $exif = GetImageInfo($_GET['img']); $innerhtml .= "<table>";   foreach($exif as $name=>$val) {     $innerhtml .= "<tr><td>{$name}</td><td>{$val}</td></tr>"; }   $innerhtml .= "<tr><td colspan=\"2\">";<br /> if ($_GET['img']) {<br />     $image = exif_thumbnail($_GET['img']);<br /> } else {<br />     $image = false;<br /> }<br /> if ($image!==false) {<br />     $innerhtml .= "<img src=\"thumbnail.php?img=".$_GET['img']."\"/>";<br /> } else {<br />     // no thumbnail available, handle the error here<br />     $innerhtml .= "No thumbnail available";<br /> }<br />  <br /> $innerhtml .= "</td></tr></table>"; ?> <html> <head> <title>图片信息</title> <meta http-equiv="Content-Type" content="text/html; charset=??????"> </meta></head> <body> <script> <!-- //初始化内容值 parent.followTd<?=$_GET['r_id'];?>.innerHTML='< ?=$innerhtml;?>'; //已读取 parent.document.images.followImg< ?=$_GET['r_id'];?>.loaded='yes'; --> </script> </body> </html>

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信背人用过找不到密码怎么办 超市的微信支付宝收付款怎么办 办理联华超市的会员储蓄卡怎么办 卡杰文具密码本如果忘记密码怎么办 火狐浏览器阻止要访问的网页怎么办 点我达被永久停用了怎么办 刚下的软件点开系统显示停用怎么办 红酒洋酒啤酒一起喝胃不舒服怎么办 儿子13岁初一不想读书了怎么办 微信不小心点了注册新账号怎么办 在京东买东西商家不发货怎么办 在京东买东西坏了商家不退货怎么办 苯扎氯铵溶液不小心喝了一口怎么办 苯扎氯铵溶液没有稀释就用了怎么办 牛油果切开了但是没熟怎么办 手机安装程序时解析包出错怎么办 因俩人不合适分手了很难受怎么办 中考结束后成绩不好的该怎么办 在京东自营药房买药没有处方怎么办 平安普惠账号不可以注销怎么办? 京东购物非自营货没到降价了怎么办 实体店商家不承认卖的是假货怎么办 衣服上的装饰圆扣掉下来了怎么办 没在京东买东西却收到退款怎么办 小米分期付款买的手机不要了怎么办 唯品会在线支付后商品有问题怎么办 红米手机把时间删了怎么办 红米桌面上的时间删了怎么办 华为手机玩游戏老是闪退怎么办 别人家无线网距离太远信号差怎么办 微信公众号交话费交错了怎么办 手机卡里还有话费销户的话怎么办 号码忘记交话费变成空号怎么办 多屏互动没办法隔空播放怎么办? 一个人长期受一件事的打击怎么办 物流信息显示快递被别人签收怎么办 现在打工的人被领导骂怎么办 加密狗丢了打不开软件了怎么办 手机微信可以打开网页打不开怎么办 手机中国网打开网速慢该怎么办 在韩国用中国软件网速特别慢怎么办