首页 后端开发 php教程 整理显示照片exif信息_PHP

整理显示照片exif信息_PHP

Jun 01, 2016 pm 12:40 PM
exif 信息 整理 显示 照片

中文方式显示照片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";
} 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.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 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)

如何在 iPhone 上对照片进行颜色反转 如何在 iPhone 上对照片进行颜色反转 Feb 02, 2024 pm 04:15 PM

虽然您可能不经常这样做,但在照片上反转颜色可能会带来一些有趣的效果。通过反转图像的颜色,您最终可能会得到一张幽灵般或有趣的照片。无论结果如何,反转颜色的操作都能让您更深入地了解颜色的工作原理。此外,反转颜色还可以帮助有视觉障碍和色盲的人更好地理解和区分图片中的物体。因此,尽管这可能不是您常常使用的技巧,但尝试反转颜色仍然是一种有趣且有益的方式来探索照片编辑的可能性。在这篇文章中,我们将向您解释在iPhone上临时和永久反转图片颜色的所有方法。如何在iPhone上对照片进行颜色反转我们为两种情况提

如何在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上

在 Mac 上锁定照片的 2 种方法 在 Mac 上锁定照片的 2 种方法 Feb 02, 2024 pm 04:05 PM

在Mac上存储照片时,可能会有一些您希望保持私密的照片。为了确保它们不被他人看到,您可以将这些照片锁定在Mac上,这样就能防止窥探。本文将指导您如何将照片锁定在Mac上,以便在需要时查看它们。如何在Mac上锁定照片[2种方法]您可以通过两种方式将照片锁定在Mac上–使用“照片”应用或“磁盘工具”应用。方法1:使用“照片”应用如果您将照片存储在此应用程序中,可以使用“照片”应用程序来锁定它们。如果照片存储在其他位置,需要将它们移动到“照片”应用中才能进行锁定。第1步:将图片添加到“照片”应用如果

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

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

See all articles