[PHP] EXIF 정보를 기준으로 이미지 회전하기

<?php
@ini_set('memory_limit', '512M');
$file = './739588647_wa0q24l6_20131126_215400.jpg';

@$image = imagecreatefromjpeg($file) or die('Error opening file '.$file);

$exif = exif_read_data($file);

if(!empty($exif['Orientation'])) {
    switch($exif['Orientation']) {
        case 8:
            $image = imagerotate($image,90,0);
            break;
        case 3:
            $image = imagerotate($image,180,0);
            break;
        case 6:
            $image = imagerotate($image,-90,0);
            break;
    }
}

header('Content-type: image/jpeg');

imagejpeg($image);

imagedestroy($image);
?>

모바일 기기에서 사진을 게시판에 업로드할 때 사진이 정상적으로 표시되지 않고 세로 사진이 가로로 표시되는 경우가 종종 있다. 모바일 기기에서는 사진에 기록된 EXIF 정보를 바탕으로 사진을 회전시켜서 보여주기 때문인데 이 부분을 PHP에서 처리하고자 할 때 사용하기 위해 간단한 테스트 코드를 작성했다.  이 코드를 응용해서 썸네일 생성 때 사용할 수 있을 것 이다.

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

3 thoughts to “[PHP] EXIF 정보를 기준으로 이미지 회전하기”

  1. 좋은 자료감사합니다.
    하나 여쭈어볼 것 이 있습니다.
    저도 자료를 정리하고 코드를 작성하는데 저렇게 가독성이 좋도록 하려면 어떻게 해야하나요? .. 아주아주 탐이납니다..
    알려주실수 있으시다면 메일로좀 알려주시기 바랍니다. ^^

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.