<?php
$file1 = './IMG_0240.jpg';
print_r(get_exif_info($file1));
function get_exif_info($file)
{
if(!is_file($file))
return false;
// EXIF Data
$exif = exif_read_data($file, 'EXIF', 0);
if($exif === false)
return false;
// 제조사
if(array_key_exists('Make', $exif))
$result['Maker'] = $exif['Make'];
// 모델
if(array_key_exists('Model', $exif))
$result['Model'] = $exif['Model'];
// 조리개값
if(array_key_exists('ApertureFNumber', $exif['COMPUTED']))
$result['FNumber'] = strtoupper($exif['COMPUTED']['ApertureFNumber']);
// 셔터스피드
if(array_key_exists('ExposureTime', $exif)) {
$t = explode("/", $exif['ExposureTime']);
$t1 = (int)$t[0];
$t2 = (int)$t[1];
if($t1 >= $t2) {
$exp = $t1 / $t2;
} else {
$exp = $t1 / $t1 .'/'. floor($t2 / $t1);
}
$result['ShutterSpeed'] = $exp.'sec';
}
// 촬영모드
if(array_key_exists('ExposureProgram', $exif)) {
switch($exif['ExposureProgram']) {
case 0:
$mode = 'Auto Mode';
break;
case 1:
$mode = 'Manual';
break;
case 2:
$mode = 'Auto Mode';
break;
case 3:
$mode = 'Aperture Priority';
break;
case 4:
$mode = 'Shutter Priority';
break;
}
$result['Mode'] = $mode;
}
// 촬영일시
if(array_key_exists('DateTimeOriginal', $exif))
$result['Datetime'] = $exif['DateTimeOriginal'];
// ISO
if(array_key_exists('ISOSpeedRatings', $exif)) {
if(is_array($exif['ISOSpeedRatings']))
$result['ISO'] = $exif['ISOSpeedRatings'][0];
else
$result['ISO'] = $exif['ISOSpeedRatings'];
}
// 초점거리
if(array_key_exists('FocalLength', $exif)) {
$t = explode("/", $exif['FocalLength']);
$result['FocalLength'] = round(((int)$t[0] / (int)$t[1]), 1).'mm';
} else if(array_key_exists('FocalLengthIn35mmFilm', $exif)) {
$t = explode("/", $exif['FocalLengthIn35mmFilm']);
$result['FocalLength'] = (int)$t[0] / (int)$t[1].'mm';
}
// 노출보정
if(array_key_exists('ExposureBiasValue', $exif)) {
$t = explode("/", $exif['ExposureBiasValue']);
$bias = round(((int)$t[0] / (int)$t[1]), 2);
$result['ExposureBias'] = $bias.'EV';
}
// 측광
if(array_key_exists('MeteringMode', $exif)) {
switch($exif['MeteringMode']) {
case 1:
$mode = 'Average';
break;
case 2:
$mode = 'Center Weighted Average';
break;
case 3:
$mode = 'Spot';
break;
case 5:
$mode = 'Multi Segment';
break;
case 6:
$mode = 'Partial';
break;
default:
$mode = 'Unknown';
break;
}
$result['MeteringMode'] = $mode;
}
// 화이트밸런스
if(array_key_exists('WhiteBalance', $exif)) {
switch($exif['WhiteBalance']) {
case 1:
$mode = 'Manual';
break;
default:
$mode = 'Auto';
break;
}
$result['WhiteBalance'] = $mode;
}
// Flash
if(array_key_exists('Flash', $exif)) {
switch($exif['Flash']) {
case 7:
$mode = 'On';
break;
case 9:
$mode = 'On Compulsory';
break;
case 16:
$mode = 'Off Compulsory';
break;
case 73:
$mode = 'On Compulsory Red-eye reduction';
break;
default:
$mode = 'Unknown';
break;
}
$result['Flash'] = $mode;
}
return $result;
}
?>
다음과 같이 데이터를 추출
Array (
[Maker] => Canon
[Model] => Canon EOS 7D
[FNumber] => F/4.0
[ShutterSpeed] => 1/400sec
[Mode] => Aperture Priority
[Datetime] => 2013:02:09 14:50:57
[ISO] => 100
[FocalLength] => 45mm
[ExposureBias] => -1EV
[MeteringMode] => Multi Segment
[WhiteBalance] => Auto
[Flash] => Off Compulsory
)
[펌]
https://ncube.net/8776