GD vs ImageMagick > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

GD vs ImageMagick 정보

GD vs ImageMagick

본문

잘돌아가는 써버에 GD버전때문에 고민을 했습니다.
컴파일이나 버전 충돌 없이 서버에 그냥 깔아 쓰면
원만한 이미지 처리는 쉽게 되는 방법을 소개 합니다.

관련 프로그램 다운로드 홈피:
http://www.imagemagick.org/script/index.php

ImageMagick 예제:
http://www.cit.gu.edu.au/~anthony/graphics/imagick6/

참고로 다음은
그누의 GD를 이용한 일반적인 섬네일 생성 프로그램을
ImageMagick으로 한 소스의 예입니다. <list.skin.php>

아래 1번은 GD를 이용한 섬네일 생서
//    if (!file_exists($thumb))
//    {
//        $file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
//        if (preg_match("/\.(jp[e]?g|gif|png)$/i", $file) && file_exists($file))
//        {
//            $size = getimagesize($file);
//            if ($size[2] == 1)
//                $src = imagecreatefromgif($file);
//            else if ($size[2] == 2)
//                $src = imagecreatefromjpeg($file);
//            else if ($size[2] == 3)
//                $src = imagecreatefrompng($file);
//            else
//                break;
//
//            $rate = $board[bo_1] / $size[0];
//            $height = (int)($size[1] * $rate);
//
//            $dst = imagecreatetruecolor($board[bo_1], $height);
//            imagecopyresampled($dst, $src, 0, 0, 0, 0, $board[bo_1], $height, $size[0], $size[1]);
//            imagepng($dst, $thumb_path.'/'.$list[$i][wr_id], $board[bo_2]);
//            chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
//        }
//    }

ImageMagick으로 한 소스의 예입니다
    if (!file_exists($thumb))
    {
        $file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
        if (preg_match("/\.(jp[e]?g|gif|png|bmp|tiff)$/i", $file) && file_exists($file))
        {
          $command = "convert -size 100x100 $file -thumbnail 100x100 $thumb";
          exec($command,$status);
        }
    }

위의 두소스중 다른 내용은 중간 브라켓 {{이곳}}입니다.
10여라인이 넘는 내용이 2줄정도면 가능하며 화일타입(bmp, tiff)도 다양 합니다.

마지막으로

그누보드를 통해 많은것을 배웠고 얻었습니다.
진심으로 감사를 드리며 또한 발전적인 많은 글을 올리시는
여러 회원님들께도 고마움을 전합니다.
추천
0
  • 복사

댓글 9개

imagemagic는 gd와 달리 외부 명령이니 속도면에는 아무래도 차이가 있겠지요.
하지만 벌크처리기능도 있는것으로 보아 그리 큰 문제는 없는 것으로 보이고 지원파일이나 에노테이팅기능등 포토샆의 기본적인 이미지처리 기능이 너무 쉽게되있 더군요.
지금도 어느것이 나은가는 논란이 많이 되고 있는느낌 입니다.
그만큼 인기는 있어 보이더군요.
외부명령이란게 실은 단점이기도 하지만 큰 장점이기도 하지요.
예) http://www.cit.gu.edu.au/~anthony/graphics/imagick6/annotating/
저도 GD가 설치되지 않은 서버에 이미지매직을 인스톨만으로 썸네일을 적용할 수 있었습니다.
GD는 아파치와 php를 컴파일 해주고 인스톨도 해줘야 하지만
이미지매직은 그냥 설치만 하면 되니까 편하죠..

속도 차이도 조금 나더군요...그래도 사용하는데 큰 지장은 없어보입니다.
혹시 GD가 설치되어 있는 않은 서버를 운영하시는 분들은 이미지매직을 한번 생각해 보세요
생각 이상의 결과가 기다립니다.ㅎㅎㅎ

요즘은 서버 설치할때 반드시 php 컴파일할때 GD를 반드시 삽입합니다...
PHPSchool에 gd, netpbm, ImageMagick의 벤치마크한 글이 있습니다.

http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=25745&sca=&sfl=wr_subject%7C%7Cwr_content&stx=&sop=and

저역시 이 세가지를 모두 사용해 보았는데 서버사양이 안좋아서 그런지 몰라도 gd가 속도가 가장 빨랐습니다. 호스팅서버에서 gd를 지원하지 않는 경우에는 훌륭한 대안이 될수도 있겠습니다.

여담이지만 gd가 이제 php.net의 프로젝트의 일부분이 된다고 합니다.
© SIRSOFT
현재 페이지 제일 처음으로