에티테마

하이브리드앱 웹앱에서 세로 이미지 업로드시에 자동으로 회전하는 현상 해결

페이지 정보

작성자 소프트존 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 작성일 21-02-09 15:31

본문

안녕하세요. 에티테마 소프트존 입니다.
하이브리드앱이나, 웹앱에서 이미지를 업로드 하는 경우 이미지가 자동으로 회전하는 경우가 있습니다.

리사이징 없는 이미지업로드의 경우에는 회전되지 않고 올바로 표시 됩니다만
리사이징 하는 경우 이미지가 자동으로 회전되어 가로로 표시됩니다.
리사이징 하면서 이미지의 정보 기준으로 처리하기 때문에 세로로 찍더라도 원래 가로이미지 라서 그런 현상이 나옵니다.

이를 해결하기 위해서는 아래 주소를 참고하시면 해결될 것 같습니다.

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);

}





  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.