首页 后端开发 php教程 显示照片exif信息PHP代码_PHP

显示照片exif信息PHP代码_PHP

Jun 01, 2016 pm 12:30 PM
exif if 代码 信息 显示 照片

中文方式显示照片EXIF信息,显示图片中所略图

这东西除了一些php论坛简单显示三两信息,别人的lb5000论坛上看到过显示,asp的也有不过很久没接触看着晕。

不想重复劳动,搜过google,除了asp没找到其他开源的显示exif的,所以整理出来或许有用。

没什么技术含量,基本只是汉化和资料整理的工作,以下代码为主要部分,所有文件在压缩包内,可以广泛用于相册和论坛显示图片信息的插件,希望熟悉相关知识的朋友找找bug或者加以优化。

目前应该缺不少信息,如果单单使用应该足够了。

——————————————————
看到过别人传过来的照片里面有缩略图,photoshop做的,但是不知道怎么加进去,有人知道么

缩略图可以显示:)


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

";

foreach($exif as $name=>$val) {
$innerhtml .= "

";
}

$innerhtml .= "

{$name} {$val}
";
if ($_GET['img']) {
$image = exif_thumbnail($_GET['img']);
} else {
$image = false;
}
if ($image!==false) {
$innerhtml .= "显示照片exif信息PHP代码_PHP";
} else {
// no thumbnail available, handle the error here
$innerhtml .= "No thumbnail available";
}

$innerhtml .= "

";
?>


图片信息



<script><BR><!--<BR>//初始化内容值<BR>parent.followTd<?=$_GET['r_id'];?>.innerHTML='<?=$innerhtml;?>';<BR>//已读取<BR>parent.document.images.followImg<?=$_GET['r_id'];?>.loaded='yes';<BR>--><BR></script>

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在Windows 11中按收藏夹对照片进行排序 如何在Windows 11中按收藏夹对照片进行排序 Mar 18, 2024 am 09:37 AM

在本文中,我们将介绍如何在Windows11中使用收藏夹功能对照片进行排序。Windows中的照片应用程序提供了一个方便的功能,允许您将特定照片或视频标记为“收藏夹”或“首选项”。一旦将这些项目标记为收藏夹,它们将自动整理到一个独立的文件夹中,使您可以轻松浏览喜爱的内容,无需搜寻整个照片库。这个功能使您能够快速访问和管理您最喜欢的照片和视频,为您节省了大量时间和精力。通常情况下,Favorites文件夹中的照片按日期降序排列,这样最新的照片会先显示,然后是时间较早的照片。但是,如果你希望将重点放

如何在Windows 11/10中按拍摄日期对照片进行排序 如何在Windows 11/10中按拍摄日期对照片进行排序 Feb 19, 2024 pm 08:45 PM

本文将介绍如何在Windows11/10中根据拍摄日期对图片进行排序,同时探讨如果Windows未按日期排序图片应该如何处理。在Windows系统中,合理整理照片对于方便查找图像文件至关重要。用户可以根据不同的排序方式(如日期、大小和名称)来管理包含照片的文件夹。此外,还可以根据需要设置升序或降序排列,以便更灵活地组织文件。如何在Windows11/10中按拍摄日期对照片进行排序要按在Windows中拍摄的日期对照片进行排序,请执行以下步骤:打开图片、桌面或放置照片的任何文件夹在功能区菜单中,单

如何在iPhone上禁用隐藏和最近删除的照片的Face ID或Touch ID 如何在iPhone上禁用隐藏和最近删除的照片的Face ID或Touch ID Mar 04, 2024 pm 04:40 PM

Apple的照片应用程序提供了一项功能,可以将照片锁定在“隐藏”和“最近删除”相册中,以确保它们不被他人窥探。这为您可能存放在这些相册中的敏感照片和视频提供了额外的保护层,因为它们被锁定在iPhone的面容ID、触控ID或设备密码后面。如果您在使用此锁定功能访问“隐藏”和“最近删除”相册时感到困难,您可以考虑禁用它,以使内容更容易访问。本文将为您详细解释如何在iPhone上禁用照片应用程序的FaceID或TouchID身份验证。如何停用“照片”应用的面容ID或触控ID必需:运行iOS16或更高版

照片无法打开此文件,因为格式不受支持或文件已损坏 照片无法打开此文件,因为格式不受支持或文件已损坏 Feb 22, 2024 am 09:49 AM

在Windows系统中,照片应用是一个便捷的方式来查看和管理照片和视频。通过这个应用程序,用户可以轻松访问他们的多媒体文件,而无需安装额外的软件。然而,有时候用户可能会碰到一些问题,比如在使用照片应用时遇到“无法打开此文件,因为不支持该格式”的错误提示,或者在尝试打开照片或视频时出现文件损坏的问题。这种情况可能会让用户感到困惑和不便,需要进行一些调查和修复来解决这些问题。当用户尝试在Photos应用程序上打开照片或视频时,会看到以下错误。抱歉,照片无法打开此文件,因为当前不支持该格式,或者该文件

iPhone '照片”应用出现'无法上传”提示该怎么办? iPhone '照片”应用出现'无法上传”提示该怎么办? Feb 28, 2024 pm 09:00 PM

如果你打开了iCloud照片功能,通过iPhone拍摄的照片和视频都会同步到苹果服务器保存。但在同步到iCloud的过程中,可能会出现“无法上传”的提示或相簿。通常,这种状态会在iPhone照片应用的底部显示,提示内容为“无法同步[数量]个项目到iCloud”。在“照片”App中会新增一个名为“无法上传”的相簿。要将这些照片或视频添加到“iCloud照片”,可以尝试将它们从“照片”App中导出,然后重新导入。但需要注意的是,之前应用到这些照片或视频的所有编辑内容或关键词都将丢失。在iPhone上

一甜相机怎么把照片弄模糊 一甜相机怎么把照片弄模糊 Feb 23, 2024 pm 06:40 PM

一甜相机中可以把照片变的模糊,那么怎么把照片弄模糊呢?用户们可以点击编辑选择一张照片,然后点击特效,选择虚化就能够模糊照片。这篇把照片弄模糊方法介绍就能够告诉大家具体的内容,下面就是详细的介绍,赶紧来看看吧!一甜相机使用教程一甜相机怎么把照片弄模糊答:在编辑-特效-虚化具体过程:1、首先打开app,点击左下的修图。2、之后点击一张图片后,点击编辑按键。3、然后点击下面的特效按键。4、就能够在下面找到虚化功能。5、之后选择虚化的倍率就可以了。

蓝屏代码0x0000001怎么办 蓝屏代码0x0000001怎么办 Feb 23, 2024 am 08:09 AM

蓝屏代码0x0000001怎么办蓝屏错误是电脑系统或硬件出现问题时的一种警告机制,代码0x0000001通常表示出现了硬件或驱动程序故障。当用户在使用电脑时突然遇到蓝屏错误,可能会感到惊慌和无措。幸运的是,大多数蓝屏错误都可以通过一些简单的步骤进行排除和处理。本文将为读者介绍一些解决蓝屏错误代码0x0000001的方法。首先,当遇到蓝屏错误时,我们可以尝试重

美图相机怎么把照片弄成黑白 美图相机怎么把照片弄成黑白 Mar 28, 2024 am 09:11 AM

在这个多彩的世界里,有时候我们也向往那份简单的黑白美感。黑白滤镜作为一种经典的图像处理方式,不仅能赋予照片一种复古而优雅的气息,还能通过对比和明暗的变化,凸显出图片的主题和情感。而美图秀秀,作为一款广受欢迎的图像处理软件,为我们提供了轻松添加黑白滤镜的功能。那么想要添加却还不知道如何添加的用户们,下文中本站小编就为大家带来了详细的步骤攻略介绍,快来跟着本文一起操作添加吧!手机美图秀秀怎么把照片变成黑白首先我们需要打开手机中的美图秀秀,进入主界面之后选择“美化图片”,选择我们需要修改的图2.之后点

See all articles