티스토리 뷰


발생일: 2013.05.22

문제:
개인적으로 진행하는 프로젝트에서 ImageMagick 으로 이미지를 처리하고 있다.
이미지를 처리할 OS는 Unix 기반이라, Unix용 바이너리를 받아서 `convert` 명령을 실행했다.

헌데, jpg 확장자를 가진 이미지는 정상적으로 처리되지 않고,
아래와 같은 에러메시지가 출력됐다.

convert: no decode delegate for this image format `test.jpg' @ error/constitute.c/ReadImage/532

음.. 뭐가 문제일까?


해결책:

JPEG 형식의 이미지 디코더가 ImageMagick 바이너리 안에 포함되어 있지 않는 게 문제였다.
JPEG 뿐만 아니라, PNG 형식도 마찬가지로 디코더가 존재하지 않는다.

이와 같이 기본적으로 제공하지 않는 이미지를 처리하려면,
해당 이미지 디코더를 설치하고, 다시 ImageMagick을 컴파일해야 한다.

이번 경우에는 jpg 형식의 이미지를 처리하기 위해 아래와 같은 순서로 해결했다.

1. JPEG 압축 라이브러리를 다운로드 받는다.
    http://www.ijg.org/ 에서 받을 수 있고, Unix 용 tar 파일을 받으면 된다.

2. 원하는 디렉토리에 압축을 풀고, 컴파일한다.

    $ tar xvfz jpegsrc.v9.tar.gz
    $ cd jpegsrc.v9
    $ ./configure
    $ make
    $ make install
    $ make clean

3. ImageMagick 라이브러리의 소스를 다운로드 받는다.
    다운로드 받은 소스를 컴파일한다. 이 때 JPEG 디코더가 활성화된다.

    $ tar xvfz imagemagick.tar.gz
    $ cd imagemagick
    $ ./configure
    $ make
    $ make install
    $ make clean

    (자세한 소스 컴파일 과정은 http://www.imagemagick.org/script/install-source.php#unix 를 참고한다)



삽질하느라 꽤 오랜 시간을 소비했었는데, 정리하고 나니 정말 간단하다. -_-
요는, JPEG 압축 라이브러리를 먼저 설치하고, ImageMagick을 설치하면 된다는 것~




반응형
댓글
공지사항