ImageMagick

ImageMagick은 다양한 이미지 형식을 읽고 크기·색상·윤곽·배치 등을 변경하며 출력하는 명령행 도구와 프로그래밍 라이브러리의 모음이다. 서버에서 이미지의 썸네일을 만들거나 웹 업로드 파일을 변환하는 작업부터 과학용 비트맵의 필터링·복잡한 이미지 합성까지 폭넓게 사용된다. 직접 붓...

작성 언어C
분류이미지 변환·처리 소프트웨어 모음과 라이브러리
개발ImageMagick Studio LLC·공동체
주요 릴리스ImageMagick 6·7
핵심 언어C
명령행magick·mogrify·identify 등
영상 처리크기 변경·합성·필터·색상 변환
데이터 정밀도Quantum Depth, HDRI
형식 지원PNG·JPEG·TIFF·SVG·WebP 등(빌드별)
APIMagickCore·MagickWand·Magick++
관련 분기GraphicsMagick
보안위임 디코더·보안 정책·자원 제한
라이선스ImageMagick License
공식 웹사이트ImageMagick

ImageMagick은 다양한 이미지 형식을 읽고 크기·색상·윤곽·배치 등을 변경하며 출력하는 명령행 도구와 프로그래밍 라이브러리의 모음이다. 서버에서 이미지의 썸네일을 만들거나 웹 업로드 파일을 변환하는 작업부터 과학용 비트맵의 필터링·복잡한 이미지 합성까지 폭넓게 사용된다. 직접 붓을 선택해 그림을 그리는 GUI보다 이미지를 명령과 API로 반복 처리하는 구조를 중심으로 설계되었다. 프로젝트는 여러 운영체제에서 빌드되며, 이미지 형식의 실제 지원은 설치된 코덱과 외부 처리 도구에 영향을 받는다.[1]

ImageMagick 7의 대표 명령은 magick이며, 입력 이미지에 크기 조절·자르기·회전·마스크·필터와 합성 연산을 순서대로 적용할 수 있다. identify 성격의 정보 조회는 이미지 차원과 파일·색상 정보를 검사하고 mogrify는 여러 파일을 일괄 수정하는 작업에 사용된다. 명령의 위치에 따라 작동하는 대상 이미지가 달라질 수 있고, 픽셀 보간·양자화와 색 공간 변환의 순서도 최종 결과의 품질에 영향을 준다. 자동화된 서버에서는 명령 처리 시간과 메모리 사용량에 상한을 설정하는 것이 중요하다.

ImageMagick은 픽셀의 색 값을 정밀도로 표현하는 Quantum Depth와 고명암비 처리를 위한 HDRI 구성을 갖는다. ImageMagick 7에서는 기본 HDRI 방식이 부동소수점 데이터로 계산 중 발생하는 음수나 일반 표시 범위를 넘는 값을 보존할 수 있어 고정 정수 형식보다 정밀한 중간 결과를 다룬다. 이러한 처리는 톤 매핑·블러·컨볼루션 등에 유용하지만 메모리와 실행 시간 비용이 커질 수 있다. 최종 JPEG·PNG에 저장되는 값의 깊이와 내부 계산의 정밀도는 구분해야 한다.[2]

MagickCore·MagickWand 및 C++용 Magick++는 다른 프로그램에서 이미지 처리 기능을 호출하도록 제공되는 API다. GraphicsMagick은 2002년 ImageMagick 5.5.2에서 분기한 별도 프로젝트이므로 현재 버전의 코드·최적화와 명령 옵션이 항상 같지는 않다. 사용자가 제공한 파일을 외부 위임 프로그램으로 처리할 수 있어 보안 정책과 지원 형식 제한, 리소스 한도를 확인해야 한다. 따라서 ImageMagick은 그래픽 파일을 다룰 때 고성능 자동화가 가능하지만, 비신뢰 입력에 대한 격리와 설정이 필요한 소프트웨어로 이해해야 한다.[3]

역사

프로젝트 출범

ImageMagick 6·7

GraphicsMagick 분기

이미지 표현

픽셀·채널

Quantum Depth

HDRI

명령행 도구

magick

identify·mogrify

연산 순서

필터·변환·합성

리샘플링

색상·톤

레이어·마스크

파일 형식과 코덱

개발자 API

MagickCore

MagickWand

Magick++

자동화와 성능

배치 처리

자원 제한

보안과 입력 검증

관련 문서

  1. ImageMagick 공식 사이트 ↩
  2. ImageMagick: HDRI와 Version 7 ↩
  3. ImageMagick: Security Policy ↩