모바일에서 세로사진 자동회전 기능 구현 소스

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
모바일에서 세로사진 자동회전 기능 구현 소스

QA

모바일에서 세로사진 자동회전 기능 구현 소스

본문

모바일에서 계속 테스트를 하는데, 세로사진의 경우 업로드를 하면 옆으로 다 누워버려서 여간 불편한게 아니더군요.

인터넷 검색하여 소스를 찾았는데,
bbs/write_update.php 소스에 삽입할 수 있도록 수정하였습니다.

========================
기존
// 업로드가 안된다면 에러메세지 출력하고 죽어버립니다.
$error_code = move_uploaded_file($tmp_file, $dest_file) or die($_FILES['bf_file']['error'][$i]);


위의 문구를 찾으셔서 아래의 소스로 덮어씌우기 하시면 됩니다.




        /////////////////////////////////////////////
        // 이 부분부터는 세로사진 정상적으로 출력되도록 회전 수정하는 부분
       
        $exifData = exif_read_data($tmp_file);
        if($exifData['Orientation'] == 6) {
            // 시계방향으로 90도 돌려줘야 정상인데 270도 돌려야 정상적으로 출력됨
            $degree = 270;
        }
        else if($exifData['Orientation'] == 8) {
            // 반시계방향으로 90도 돌려줘야 정상
            $degree = 90;
        }
        else if($exifData['Orientation'] == 3) {
            $degree = 180;
        }
        if($degree) {
            if($exifData[FileType] == 1) {
                $source = imagecreatefromgif($tmp_file);
                $source = imagerotate ($source , $degree, 0);
                imagegif($source, $dest_file);
            }
            else if($exifData[FileType] == 2) {
                $source = imagecreatefromjpeg($tmp_file);
                $source = imagerotate ($source , $degree, 0);
                imagejpeg($source, $dest_file);
            }
            else if($exifData[FileType] == 3) {
                $source = imagecreatefrompng($tmp_file);
                $source = imagerotate ($source , $degree, 0);
                imagepng($source, $dest_file);
            }

            imagedestroy($source);
        }
        else {
            // 업로드가 안된다면 에러메세지 출력하고 죽어버립니다.
            $error_code = move_uploaded_file($tmp_file, $dest_file) or die($_FILES['bf_file']['error'][$i]);
        }
        // 세로사진 처리 끝 //////////////////////////////////////////



위 소스는
업로드한 사진의 촬영각도를 파악하여 정상적인 회전각도를 계산한 후 서버에 저장하는 소스입니다.

일단 제 핸드폰(아이폰)과 카메라 사진에서 테스트 해보니 잘 작동됩니다.

이 질문에 댓글 쓰기 :

답변 2

답변을 작성하시기 전에 로그인 해주세요.
전체 124,263
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT