TIP게시판

제목 이미지 업로드후 사진 회전하는 팁!
글쓴이 방문넷 작성시각 2014/12/06 23:33:51
댓글 : 3 추천 : 2 스크랩 : 0 조회수 : 19216   RSS
일단 이미지 Exif 정보를 필두로 하기때문에 이미지가 수정된 파일에서 Exif 정보가 불확실하거나 Exif 정보중 Orientation 값이 없으면 정상작동 안할수있습니다!!!!


이팁은 핸드폰 사진을 업로드했을시에 가로세로 회전이 그대로 적용되서 사진 불편하게 보일경우가 있습니다. 그걸 해소하기 위한 팁 입니다!
 
<?php
$data = $this->upload->data();
			
			//이미지 정보 가져오기.(정보가 없는 이미지는 패스)
			$exifData = exif_read_data('data/shop/'.$data['file_name']);
			

			// 시계방향으로 90도 돌려줘야 정상인데 270도 돌려야 정상적으로 출력됨 
			if( isset($exifData['Orientation']) )
			{
				if($exifData['Orientation'] == 6) 
				{
					$degree = 270; 
				} 
				// 반시계방향으로 90도 돌려줘야 정상 
				else if ($exifData['Orientation'] == 8)
				{
					$degree = 90; 
				} 
				else if ($exifData['Orientation'] == 3)
				{ 
					$degree = 180; 
				} 
				
				if($degree) { 
					if($exifData['FileType'] == 1)
					{ 
						$source = imagecreatefromgif('data/shop/'.$data['file_name']); 
						$source = imagerotate ($source , $degree, 0); 
						imagegif($source, 'data/shop/'.$data['file_name']); 
					} 
					else if($exifData['FileType'] == 2)
					{ 
						$source = imagecreatefromjpeg('data/shop/'.$data['file_name']); 
						$source = imagerotate ($source , $degree, 0); 
						imagejpeg($source, 'data/shop/'.$data['file_name']); 
					} 
					else if($exifData['FileType'] == 3)
					{ 
						$source = imagecreatefrompng('data/shop/'.$data['file_name']); 
						$source = imagerotate ($source , $degree, 0); 
						imagepng($source, 'data/shop/'.$data['file_name']); 
					} 

					imagedestroy($source); 
				}
			}
			
			$config['image_library'] = 'gd2';
			$config['source_image']	= 'data/shop/'.$data['file_name'];
			$config['maintain_ratio'] = TRUE;
			$config['width']	= 400;

			$this->load->library('image_lib', $config); 

			$this->image_lib->resize(); 
?>

코드를 보시면 Orientation 값을 체크해서 회전을 하는걸 보실수있습니다. 보통 일반적으로 업로드후에 보여질때 회전을 해서 보여주는 경우가있는데 저같은경우는 그냥 업로드 되자마자 회전시키고 리사이징을 시킨 케이스 입니다.

참고로 이미지 리사이징후에는 Orientation값이 사라지니 리사이징 이전에 하시면 좀더 도움이 되실꺼같습니다!
 다음글 transaction 버그가 있네요. (1)
 이전글 24 cool php libraries (5)

댓글

한대승(불의회상) / 2014/12/09 19:24:44 / 추천 0
좋은 정보 감사 합니다. ^^
변종원(웅파) / 2014/12/10 16:53:21 / 추천 0
카메라를 오른쪽으로 돌리거나 왼쪽으로 돌려서 찍었을 경우 체크하는 부분인가 봅니다.
감사합니다.
크레용팝 / 2015/12/01 15:07:27 / 추천 0
감사합니다!!! 정말 큰 도움 되었습니다!! 감사드립니다!!!!!!!!!!!!!!!!!!!!!!!!