Develop
2013.04.23 15:28

[php] 이미지 회전시키기(gd)

Views 7318 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
PHP사용자함수, 팁, 알고리즘 > GD > gd, imagerotate - gd.. 이미지 회전시키기..

imagerotate 라는 함수가 있다.
이미지의 width가 height 보다 작을때..
270, -90 도로 회전시킬 경우에는 이미지가 짤린다.

그래서 생각해낸 방법이..
정사각형의 이미지를 만들고, 그 안에 원본 이미지를 카피한 다음에 이 정사각형을 회전시키고..
회전 시킨 이미지를 다시 회전시켰을때 나타날 이미지의 사이즈를 만든 다음에..
이미지에 회전시킨 이미지의 x, y 값을 적절히 뽑아내서 대상 이미지 영역에 카피한다.
function rotate($src_img, $degrees){
    // file size 
    list($f_width, $f_height, $f_type, $f_attr) = getimagesize($src_img);
    
    if($degrees == 180){
        $src_img = ImageCreateFromjpeg($src_img);
        $dst_img = imagerotate($src_img, $degrees, 0); 
    }else{ // 90, 270 인 경우..
        if($f_width > $f_height){
            $size = $f_width;
        }else{
            $size = $f_height;
        }
        
        //1.. 
        $dst_img = imagecreatetruecolor($size, $size); 
        
        // 지정한 위치에 있는 파일로부터 새로운 이미지 생성..
        $src_img = ImageCreateFromjpeg($src_img);
        
        imagecopy($dst_img, $src_img, 0,0,0,0,$f_width,$f_height);
        $dst_img = imagerotate($dst_img, $degrees, 0);
        $src_img = $dst_img;
 
        //2..
        $dst_img = imagecreatetruecolor($f_height, $f_width);
 
        // degrees 와 이미지의 넓이와 높이의 차이에 따라 복사된 이미지의 위치가 틀려짐..
        if( (($degrees == 90) && ($f_width > $f_height))
            || (($degrees == 270) && ($f_width < $f_height)) ){
            imagecopy($dst_img, $src_img, 0, 0, 0, 0, $size, $size);
        }
        
        if(($degrees == 90) && ($f_width < $f_height)){
            imagecopy($dst_img, $src_img,
                0, 0, 0, $size-$f_width, $size, $size);
        }
    
        if(($degrees == 270) && ($f_width > $f_height)){
            imagecopy($dst_img, $src_img,
                0, 0, $size-$f_height, 0, $size, $size);
        } 
    }

    return $dst_img;
} // rotate function end.

[출처] http://epplus.com
?

List of Articles
No. Category Subject Author Date Views
517 Develop [html] HTML5 튜토리얼 링크 ㅋㅋ hooni 2013.04.23 12816
516 Develop [android] 해상도 관련 팁 (dip -> pixel 변환) hooni 2013.04.23 15335
515 Etc [ios] 아이폰 개발 따라하기 ㅋㅋㅋ hooni 2013.04.23 23304
514 Develop [android]개발 가이드 및 한글화 문서 file hooni 2013.04.23 47518
513 Develop [pdf] GPS의 동작 원리 ㅎㅎ file hooni 2013.04.23 23836
512 Etc [flash] 자동차 엔진의 원리 (4행정 사이클 그림) file hooni 2013.04.23 21226
511 Develop [doc] UI개발시 유용한 소프트웨어 (개발 및 디버깅 툴) hooni 2013.04.23 12911
510 Develop 모터에 대한 pid 제어.. ㅎㅎ file hooni 2013.04.23 18880
509 Develop 레고 NXT 마인드스톰 밸런싱 로봇 ㅎㅎ file hooni 2013.04.23 57716
508 Etc 아두이노 관련 정보.. hooni 2013.04.23 21772
507 Develop 레고 마인드스톰 NXT 수도쿠, 큐브 소스코드.. 20 file hooni 2013.04.23 81435
506 Develop 밸런싱 로봇.. 최종.. (관련 논문도 첨부) ㅋㅋ file hooni 2013.04.23 22822
505 Develop [js] 자바스크립트(Javascript) 코드를 동적으로 삽입하는 방법.. file hooni 2013.04.23 22879
504 Develop [ios] Objective-C에서 SQLite 사용하기.. file hooni 2013.04.23 14560
503 Develop [js] 동적(innerHTML)으로 자바스크립트 실행하기.. 2 file hooni 2013.04.23 18203
502 Develop [js] 양원님이 공유해 주신 유료(5$란다ㅋ) 자료 ㅋㅋ secret hooni 2013.04.23 7948
Board Pagination Prev 1 ... 40 41 42 43 44 ... 74 Next
/ 74