以下为引用的内容:

/**

* 获取图象信息的函数

*

* 一个全面获取图象信息的函数

*

* @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    .=    "

foreach($exif as $name=>$val) {

$innerhtml    .=    "

{$name}{$val}";

}

$innerhtml    .=    "

";

if ($_GET['img']) {

$image = exif_thumbnail($_GET['img']);

} else {

$image = false;

}

if ($image!==false) {

$innerhtml    .=    "";

} else {

// no thumbnail available, handle the error here

$innerhtml    .=    "No thumbnail available";

}

$innerhtml    .=    "

";

?>

图片信息

php exif信息,显示照片exif信息PHP代码相关推荐

  1. 开通php exif,PHP实现显示照片exif信息的方法

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

  2. MATLAB批量读取航摄相片EXIF信息和GNSS信息以及MATLAB批量经纬度坐标转换空间直角坐标

    前言 没有前言,创作不易,希望家人们点点赞,如有错误评论留言,感谢支持! 文章目录 前言 一.MATLAB批量读取航摄相片的EXIF信息,并批量提取其GNSS经纬度信息 (1)前述: (2)代码实现和 ...

  3. 用python解释exif数据的GPS信息

    用python解释exif数据的GPS信息 - 问答 - Python中文网 我正在写一个小程序来获取iphone jpg照片的GPS信息. 我使用的库是python中的PIL.现在我可以得到GPSI ...

  4. .Net有关问题。在GridView中添加了一个HyperLinkField,用来显示显示详细信息,请教跳转后的详细信息页面该怎样写代码

    .Net问题...在GridView中添加了一个HyperLinkField,用来显示显示详细信息,请问跳转后的详细信息页面该怎样写代码 在一个页面的GridView中添加了下面的代码: <as ...

  5. 试试 python-dotenv,避免敏感信息被硬编码到代码中

    我们开发的每个系统都离不开配置信息,例如数据库密码.Redis密码.邮件配置.各种第三方配置信息,这些信息都非常敏感,一旦泄露出去后果非常严重,被泄露的原因一般是程序员将配置信息和代码混在一起导致的. ...

  6. 网页html修改,对学生信息进行修改网页html代码.doc

    对学生信息进行修改网页html代码 修改信息 QSsno=request.QueryString("sno") Fsname =request.form("sname&q ...

  7. python爬虫找工作怎么找_python爬虫判断招聘信息是否存在的实例代码

    在找工作的时候,我们会选择上网查询招聘的信息,或者是通过一些招聘会进行现场面试.但由于信息更新不及时,有一些岗位会出现下架的情况,如果我们不注意的话,可能就扑了空.在时间上耽误了不说,面试的信息也会受 ...

  8. 获取对象的接口信息(方法/属性/事件)(VB6代码)

    要不是WS的超级绿豆提起这东西,我还不知道呢.... 真是个好玩意!!能列出一个对象的接口,包括方法,属性,事件.....微软直接做了啊. 记录一下,以后要用到时免得忘了: Option Explic ...

  9. autoHotkey —— 查看目标窗口的信息-工具方法,不是代码方法

    文章目录 autoHotkey -- 查看目标窗口的信息-工具方法,不是代码方法 基本环境 为什么要做这个事情 实现 autoHotkey -- 查看目标窗口的信息-工具方法,不是代码方法 这个操作其 ...

  10. 拼多多店铺订单API接口(pdd.order.basic.list.get订单基础信息列表查询接口)代码对接教程

    拼多多店铺订单API接口(pdd.order.basic.list.get订单基础信息列表查询接口)代码对接教程如下: 1.公共请求参数 参数名称 参数类型 是否必填 参数描述(接口代码教程wx199 ...

最新文章

  1. v-html解析的相对地址img 显示不出来_人工智能专题作品解析——APPInventor安卓应用开发AI图像识别简单应用...
  2. Bitmap上下合成图片
  3. Boreas: 一种基于token 的精确并且大规模检测代码克隆的方法
  4. Linux Container 研究报告
  5. GridView行号大集合
  6. Nginx的server块和location块的简单说明
  7. “http 500内部服务器错误”的解决方法
  8. M​y​E​c​l​i​p​s​e​下​反​编​译​插​件​安​装​使​用​方​法
  9. 如何将 Oracle 单实例数据库转换为RAC数据库?
  10. 多目标跟踪(MOT)最新综述,一文快速入门
  11. ASP.NET2.0网站配置的数据库连接失败问题(zz)
  12. [C#] 汉字转拼音,支持多音字
  13. 迅雷7核心技术Bolt界面引擎正式开放
  14. 艾宾浩斯遗忘曲线.pdf百日计划表.pdf考研时间计划表.pdf每日打卡.pdf每日复习计划表.pdf详细日计划.pdf月计划表.pdf周计划.pdf
  15. http status failed,jsp页面加载完了,但是浏览器任然在转圈,页面无法操作
  16. 最小采样频率计算公式_速度采样频率
  17. 远程连接服务器出现channel is not opened通道未打开
  18. 人生不该有如此压力,来吃下这口缓解焦虑的良药[50P]
  19. 一款专为APP设计的后台管理系统平台
  20. 华为交换机升级包及补丁验证完整性

热门文章

  1. Linux命令行删除文件恢复
  2. Linux怎么恢复已删除的文件,Linux中使用extundelete恢复已删除的文件
  3. 格雷码-数字设计应用
  4. Not showing null elements
  5. 联想服务器装系统极慢,联想win10系统安装版重装后运行速度变慢了
  6. 免费QQ币:永不过期的刷QQ币技巧共享
  7. python哈希类型_Python散列类型和运算符
  8. 如何选择剑桥英语KET,PET课程和老师
  9. 毕设过程中使用WPS的自定义生成目录中混入图片等非相关元素
  10. 史上最酷的java音乐播放器,swing编写,炫酷界面