|
<?php
/*************************************************************************** # Module Name : getExifInfo # Author : Young-sick.Yoon (wizard@ncafe.net) # Date : 2008-01-21 오후 4:19 # Information : EXIF Viewer (php) ***************************************************************************/ function getExifInfo($filename,$debug=0) { $exposureMode = array('Auto Exposure','Manual Exposure','Auto Bracket'); $exposureProgram = array("Not defined","Manual","Program (Auto)","Aperture priority","Shutter priority","Creative program","Action program","Portrait mode","Landscape mode"); $whiteBalance = array("Auto WB","Manual WB"); $meteringMode = array("Unknown","Average","CenterWeightedAverage","Spot","MultiSpot","Multi-segment","Partial"); $flash = array("73"=>"On Compulsory Red-eye reduction","89"=>"On Auto Red-eye reduction","95"=>"On Auto Red-eye reduction"); $erdata = @exif_read_data($filename,0,true); if (!$erdata||!$erdata["EXIF"]) { return; } $exif["Make"] = $erdata["IFD0"]["Make"]; // 제조사 $exif["Model"] = $erdata["IFD0"]["Model"]; // 모델 $exif["ExifVersion"] = $erdata["EXIF"]["ExifVersion"]; // EXIF 버전 $exif["DateTime"] = $erdata["EXIF"]["DateTimeOriginal"]; // 촬영일 $exif["Software"] = $erdata["IFD0"]["Software"]; // 사용 Software $exif["Width"] = $erdata["EXIF"]["ExifImageWidth"]; // 사진 크기 $exif["Height"] = $erdata["EXIF"]["ExifImageLength"]; // 사진 크기 $exif["ExposureMode"] = $exposureMode[$erdata["IFD0"]["ExposureMode"]]; // 노출모드 if (!$exif["ExposureMode"]) { $exif["ExposureMode"] = $exposureMode[$erdata["EXIF"]["ExposureMode"]]; } $tmp = explode("/",$erdata["EXIF"]["ExposureTime"]); // 노출시간 (셔터스피드) $exif["ExposureTime"] = $tmp[0]/$tmp[0]."/".$tmp[1]/$tmp[0]."s"; $tmp=null; $tmp = explode("/",$erdata["EXIF"]["FNumber"]); // 조리개값 $exif["FNumber"] = "F".sprintf("%3.1f",@($tmp[0]/$tmp[1])); $tmp=null; $exif["ISO"] = "ISO-".$erdata["EXIF"]["ISOSpeedRatings"]; // ISO 감도 $exif["ExposureProgram"] = $exposureProgram[$erdata["EXIF"]["ExposureProgram"]]; $exif["WhiteBalance"] = $whiteBalance[$erdata["IFD0"]["WhiteBalance"]]; // 화이트벨런스 if (!$exif["WhiteBalance"]) { $exif["WhiteBalance"] = $whiteBalance[$erdata["EXIF"]["WhiteBalance"]]; } $tmp = explode("/",$erdata["EXIF"]["ExposureBiasValue"]); // 노출보정 $exif["ExposureBias"] = sprintf("%4.2f",@($tmp[0]/$tmp[1]))."EV"; $tmp=null; $exif["MeteringMode"] = $meteringMode[$erdata["EXIF"]["MeteringMode"]]; // 측광모드 if ($flash[$erdata["EXIF"]["Flash"]]) { $flash_str = " (".$flash[$erdata["EXIF"]["Flash"]].")"; } // 플래시사용여부 $exif["Flash"] = @($erdata["EXIF"]["Flash"]&7)>0?"Flash fired":"Flash not fired"; $tmp = explode("/",$erdata["EXIF"]["FocalLength"]); // 초점거리 $exif["FocalLength"] = @($tmp[0]/$tmp[1])."mm"; $tmp=null; $tmp = (int)$erdata["COMPUTED"]["CCDWidth"]; // CCD if ($tmp>0) { $exif["CCDWidth"] = $tmp."mm"; } $tmp=null; $exif["FocalLengthIn35mmFilm"] = $erdata["EXIF"]["FocalLengthIn35mmFilm"]." mm"; // 35인치 환산값 $exif["DigitalZoomRatio"] = $erdata["EXIF"]["DigitalZoomRatio"]; // 줌 $exif["FirmwareVersion"] = $erdata["MAKERNOTE"]["FirmwareVersion"]; // 펌웨어 버전 $exif["Lens"] = $erdata["MAKERNOTE"]["UndefinedTag:0x0095"]; // 사용랜즈 Canon Body & Canon Lens Only while(list($k,$v)=each($exif)) { if ($v&&trim($v)!="F"&&trim($v)!="ISO-"&&trim($v)!="EV"&&trim($v)!="mm"&&trim($v)!="s") { $exif_data[$k] = $v; } } if ($debug) { echo "<pre>"; print_r($erdata); echo "</pre>"; } return $exif_data; } ?> 출처 : http://wizard.ncafe.net/wt/2406 # by 구스몽 | 2009/04/13 23:11 | 덧글(0)
|