首頁 後端開發 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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24
如何在 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:將圖片加入「照片」應用程式如果

美圖相機怎麼把照片弄成黑白 美圖相機怎麼把照片弄成黑白 Mar 28, 2024 am 09:11 AM

在這個多彩的世界裡,有時候我們也嚮往那份簡單的黑白美感。黑白濾鏡作為一種經典的影像處理方式,不僅能賦予照片一種復古而優雅的氣息,還能透過對比和明暗的變化,凸顯出圖片的主題和情感。而美圖秀秀,作為一款廣受歡迎的影像處理軟體,為我們提供了輕鬆添加黑白濾鏡的功能。那麼想要添加卻還不知道如何添加的用戶們,下文中本站小編就為大家帶來了詳細的步驟攻略介紹,快來跟著本文一起操作添加吧!手機美圖秀怎麼把照片變成黑白首先我們需要打開手機中的美圖秀秀,進入主界面之後選擇“美化圖片”,選擇我們需要修改的圖2.之後點

See all articles