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

· 2013-08-25 (일) 04:52:54 · 2865 · 2
모바일에서 계속 테스트를 하는데, 세로사진의 경우 업로드를 하면 옆으로 다 누워버려서 여간 불편한게 아니더군요.

인터넷 검색하여 소스를 찾았는데,
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개

게시판이... 질문인데요~
좋은 팁 같습니다. 팁란에도 다시한번 ㄱㄱ씽~
감사합니다..^^
댓글을 작성하시려면 로그인이 필요합니다.

그누5 질답

1,039건

그누보드5 버전에 대한 질문을 할 수 있습니다.쪽지나 메일로 해결해 주겠다는 답변은 정상적인 답변으로 보기 어려우므로 신고해 주시기 바랍니다.

+
제목 글쓴이 날짜 조회
13-08-27 조회 639
13-08-27 조회 309
13-08-27 조회 360
13-08-27 조회 456
13-08-27 조회 474
13-08-26 조회 1,991
13-08-26 조회 633
13-08-26 조회 465
13-08-26 조회 385
13-08-25 조회 783
13-08-25 조회 2,866
13-08-24 조회 498
13-08-24 조회 452
13-08-24 조회 455
13-08-23 조회 513
13-08-22 조회 566
13-08-21 조회 480
13-08-21 조회 483
13-08-21 조회 448
13-08-21 조회 407