[PHP] 사진의 EXIF 정보 가져오기
PHP exif_read_data() 함수를 이용해 사진의 EXIF 정보를 가져오는 함수를 만들어 봤다. D300과 EOS 7D로 촬영한 사진에 대해서만 테스트를 했기 때문에 다른 기종에서는 작동을 보장할 수 없다.
<?php
$file = './IMG_0240.jpg';
function get_exif_info($file)
{
$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))
$result['Exposure'] = $exif['ExposureTime'];
if(array_key_exists('DateTimeOriginal', $exif))
$result['Datetime'] = $exif['DateTimeOriginal'];
if(array_key_exists('ISOSpeedRatings', $exif))
$result['ISO'] = $exif['ISOSpeedRatings'];
if(array_key_exists('FocalLengthIn35mmFilm', $exif))
$result['Focal'] = $exif['FocalLengthIn35mmFilm'];
else if(array_key_exists('FocalLength', $exif)) {
$t = explode("/", $exif['FocalLength']);
$result['Focal'] = $t[0];
}
if(array_key_exists('ExposureBiasValue', $exif)) {
$t = explode("/", $exif['ExposureBiasValue']);
$bias = round(((int)$t[0] / (int)$t[1]), 2);
$result['ExposureBias'] = $bias;
}
return $result;
}
print_r(get_exif_info($file));
?>
exif_read_data() 함수에서 얻을 수 있는 데이터는 위의 것보다 훨씬 더 많은 정보를 얻을 수 있지만 개인적으로 필요한 정보는 저 정도라고 판단이 돼서 저렇게만 일단 작업을 했다.