<?php
/**
* @description 스마트폰, 카메라 등에서 사진 jpg 저장시에
회전값이 들어갈 수 있다. 그럴 경우 변환해 주는 소스 이다.
*/
if(!function_exists('exif_read_data')){
echo 'not defined exif_read_data. requires exif module';
exit;
}
if(!function_exists('imagecreatefromjpeg')){
echo 'not defined imagecreatefromjpeg.';
exit;
}
if(!function_exists('imagerotate')){
echo 'not defined imagerotate.';
exit;
}
$source_path = "shot.jpg";
$temp_ext = strrchr($source_path, ".");
$temp_ext = strtolower($temp_ext);// 확장자
if(preg_match('/(jpg|jpeg)$/i',$temp_ext)
&& function_exists('exif_read_data')
&& function_exists('imagecreatefromjpeg')
&& function_exists('imagerotate')
)
{
$exif = exif_read_data($source_path);//<get exif data. jpeg 나 tiff 의 경우에만 갖고 있음
$source = imagecreatefromjpeg($source_path);//<임시 리소스 생성
//값에 따라 회전
switch($exif['Orientation']){
case 8 : $source = imagerotate($source,90,0); break;
case 3 : $source = imagerotate($source,180,0); break;
case 6 : $source = imagerotate($source,-90,0); break;
}
//결과 처리
header('Content-Type: image/jpeg');
imagejpeg($source);
imagedestroy($source);
}
?>