CI 묻고 답하기

제목 이미지가 눕혀져서 들어가요!
카테고리 CI 2, 3
글쓴이 김마니 작성시각 2017/04/18 17:26:06
댓글 : 5 추천 : 0 스크랩 : 2 조회수 : 21830   RSS

multi_form 이용해서 이미지 넣는 것 까진했는데요.

아이폰, 안드로이드로 사진을 찍어서 올리면 사진이 눕혀져서 올라가네요?

왜이런지 아시는분 있나요?? ㅠㅠ

 다음글 ajax 배열 데이터 컨트롤러에서 받기 (4)
 이전글 쿼리스트링 방식일때 검색값 value에 넣는 방법 (2)

댓글

변종원(웅파) / 2017/04/18 17:40:21 / 추천 1

원래 그래요.. 그러면 이상한가요? ㅎㅎ

이미지 정보를 읽어서 특정 값에 따라 이미지를 돌려야 합니다.

http://php.net/manual/kr/function.exif-read-data.php 에서 첫번째 note 참고하세요.

김마니 / 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/ 헬퍼로 만드시고 로딩 후 불러 쓰시면 됩니다.