PHP 하이브리드앱 웹앱에서 세로 이미지 업로드시에 자동으로 회전하는 현상 해결
페이지 정보
작성자
본문
안녕하세요. 에티테마 소프트존 입니다.
하이브리드앱이나, 웹앱에서 이미지를 업로드 하는 경우 이미지가 자동으로 회전하는 경우가 있습니다.
리사이징 없는 이미지업로드의 경우에는 회전되지 않고 올바로 표시 됩니다만
리사이징 하는 경우 이미지가 자동으로 회전되어 가로로 표시됩니다.
리사이징 하면서 이미지의 정보 기준으로 처리하기 때문에 세로로 찍더라도 원래 가로이미지 라서 그런 현상이 나옵니다.
이를 해결하기 위해서는 아래 주소를 참고하시면 해결될 것 같습니다.
https://stackoverflow.com/questions/1201798/use-php-to-convert-png-to-jpg-with-compression
[해당 소스코드]
function CreateThumbnail($pic,$thumb,$thumbwidth, $quality = 100)
{
$im1=ImageCreateFromJPEG($pic);
//if(function_exists("exif_read_data")){
$exif = exif_read_data($pic);
if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
case 8:
$im1 = imagerotate($im1,90,0);
break;
case 3:
$im1 = imagerotate($im1,180,0);
break;
case 6:
$im1 = imagerotate($im1,-90,0);
break;
}
}
//}
$info = @getimagesize($pic);
$width = $info[0];
$w2=ImageSx($im1);
$h2=ImageSy($im1);
$w1 = ($thumbwidth <= $info[0]) ? $thumbwidth : $info[0] ;
$h1=floor($h2*($w1/$w2));
$im2=imagecreatetruecolor($w1,$h1);
imagecopyresampled ($im2,$im1,0,0,0,0,$w1,$h1,$w2,$h2);
$path=addslashes($thumb);
ImageJPEG($im2,$path,$quality);
ImageDestroy($im1);
ImageDestroy($im2);
}
댓글목록
등록된 댓글이 없습니다.