| 제목 | 이미지가 눕혀져서 들어가요! | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 김마니 | 작성시각 | 2017/04/18 17:26:06 | 
|  | |||
| multi_form 이용해서 이미지 넣는 것 까진했는데요. 아이폰, 안드로이드로 사진을 찍어서 올리면 사진이 눕혀져서 올라가네요? 왜이런지 아시는분 있나요?? ㅠㅠ | |||
| 다음글 | ajax 배열 데이터 컨트롤러에서 받기 (4) | ||
| 이전글 | 쿼리스트링 방식일때 검색값 value에 넣는 방법 (2) | ||
| 
                                변종원(웅파)
                                /
                                2017/04/18 17:40:21 /
                                추천
                                1
                             | 
| 
                                김마니
                                /
                                2017/04/19 21:06:46 /
                                추천
                                0
                             
                                웅파님감사합니다!
                             | 
| 
                                테러보이
                                /
                                2017/04/20 17:52:52 /
                                추천
                                0
                             참고하세요~ 
# 돌아간 이미지 보정
function ImgLotate($Img) {
    global $ci;
    $exifData = exif_read_data($Img);
    $ImgInfo = getimagesize($Img);
    if(isset($exifData['Orientation'])) {
        if($exifData['Orientation'] == 6)  $degree = 270;
        else if($exifData['Orientation'] == 8) $degree = 90;
        else if($exifData['Orientation'] == 3) $degree = 180;
        if($degree) {
            if($exifData['FileType'] == 1) {
                $source = imagecreatefromgif($Img);
                $source = imagerotate ($source , $degree, 0);
                imagegif($source, $Img);
            }
            else if($exifData['FileType'] == 2) {
                $source = imagecreatefromjpeg($Img);
                $source = imagerotate ($source , $degree, 0);
                imagejpeg($source, $Img);
            }
            else if($exifData['FileType'] == 3) {
                $source = imagecreatefrompng($Img);
                $source = imagerotate ($source , $degree, 0);
                imagepng($source, $Img);
            }
            imagedestroy($source);
        }
    }
    $config['image_library'] = 'gd2';
    $config['source_image'] = $Img;
    $config['maintain_ratio'] = TRUE;
    $config['width'] = $ImgInfo[0];
    $config['height'] = $ImgInfo[1];
    $ci->load->library('image_lib', $config);
    $ci->image_lib->resize();
}
# exif정보 출력
function ImgExif($Img) {
    global $ci;
    $exifData = exif_read_data($Img);
    $ImgInfo = getimagesize($Img);
    if($exifData['Orientation'] == 6)  $degree = 90;
    else if($exifData['Orientation'] == 8) $degree = -90;
    else if($exifData['Orientation'] == 3) $degree = -180;
    return array('degree'=>$degree,'exif'=>$exifData, 'info'=>$ImgInfo);
}
 | 
| 
                                perfume
                                /
                                2018/01/15 23:47:18 /
                                추천
                                0
                             테러보이님, 혹시 뭐 하나 여쭤봐도 될까요? 제가 지금 CIBoard를 이용중인데요, 스마트 에디터를 통해 이미지를 업로드시키고 있습니다. 알려주신 소스를 적용시키고자 하는데 스마트 에디터에서 이미지 선택시 삽입되는 콘트롤러에 해당 코드를 집어넣었습니다. 그런데 변경된 내용이 적용이 안되는데요, 저 ImgLotate() 함수를 어떻게 사용해야 하는지요. | 
| 
                                변종원(웅파)
                                /
                                2018/01/16 10:00:08 /
                                추천
                                0
                             
                                perfume/ 헬퍼로 만드시고 로딩 후 불러 쓰시면 됩니다.
                             | 
원래 그래요.. 그러면 이상한가요? ㅎㅎ
이미지 정보를 읽어서 특정 값에 따라 이미지를 돌려야 합니다.
http://php.net/manual/kr/function.exif-read-data.php 에서 첫번째 note 참고하세요.