우분투 ImageMagick convert 명령어 옵션별 실무 활용 가이드

개요

우분투 환경에서 대량의 이미지를 다룰 때 터미널 기반의 convert 명령어는 뛰어난 작업 효율을 제공합니다. ImageMagick의 핵심 도구인 convert의 설치부터 주요 옵션별 실행 결과와 이미지 변환 방법을 단계별로 살펴봅니다.

ImageMagick 설치 및 이미지 포맷 변환

ImageMagick 실습을 진행하기 위해 apt-get update -qq && apt-get install -y imagemagick 명령어로 패키지를 설치합니다.

apt-get update -qq && apt-get install -y imagemagick

convert 명령어는 이미지 포맷 변환, 크기 조정, 회전 등 다양한 그래픽 처리를 지원하는 ImageMagick의 핵심 도구입니다.
설치된 ImageMagick의 버전 및 빌드 정보를 확인하기 위해 convert -version | head -n 2 명령어를 실행합니다.
⚙️ [주요 옵션]

-resize : 이미지의 해상도 크기를 비율 유지 또는 사용자 지정 크기로 변경합니다.
-quality : 이미지 압축 품질(1~100)을 설정하여 용량과 화질을 조절합니다.
-rotate : 이미지를 지정한 각도만큼 시계 방향으로 회전합니다.
-crop : 이미지에서 원하는 영역의 크기와 좌표를 지정하여 잘라냅니다.
-size : 새로운 캔버스나 배경 이미지를 생성할 때 가로x세로 크기를 지정합니다.

convert -version | head -n 2

실습에 사용할 샘플 이미지를 준비하기 위해 -size 300x200 옵션과 xc:steelblue 단색 캔버스를 지정하여 input.png 이미지를 생성합니다.

convert -size 300x200 xc:steelblue input.png

생성된 PNG 이미지를 JPG 형식으로 변환하기 위해 convert input.png output.jpg 명령어를 실행합니다.
ImageMagick은 출력 파일의 확장자를 감지하여 해당 이미지 포맷 규격에 맞춰 자동으로 인코딩을 진행합니다.

convert input.png output.jpg

input.png와 output.jpg 파일의 실제 포맷 형식과 해상도 정보가 정상적으로 변환되었는지 확인하기 위해 file 명령어를 실행합니다.

file input.png output.jpg

이미지 해상도 및 비율 리사이즈 (-resize)

원본 이미지의 가로와 세로 해상도를 특정 픽셀 크기로 조정하기 위해 -resize 150x100 옵션을 지정하여 변환을 수행합니다.
ImageMagick은 원본 이미지의 가로세로 비율을 유지하면서 지정된 크기 범위 내에 맞게 리사이즈를 진행합니다.

convert input.png -resize 150x100 resize_exact.png

픽셀 단위 대신 퍼센트 비율을 기준으로 이미지 크기를 축소하기 위해 -resize 50% 옵션을 실행합니다.
원본 해상도의 50% 크기로 가로와 세로 비율이 균등하게 줄어든 이미지 파일이 생성됩니다.

convert input.png -resize 50% resize_half.png

리사이즈 작업이 적용된 파일들의 해상도와 포맷 정보를 비교 확인하기 위해 identify 명령어를 실행합니다.
각 이미지 파일의 파일명, 포맷 규격, 가로x세로 픽셀 크기 및 색상 깊이 정보를 출력하여 크기 변경 결과를 검증합니다.

identify input.png resize_exact.png resize_half.png

이미지 회전 및 상하좌우 반전 (-rotate, -flip, -flop)

원본 이미지를 시계 방향으로 90도 회전하기 위해 -rotate 90 옵션을 사용하여 변환을 수행합니다.
90도 회전이 적용되면서 기존 이미지의 가로와 세로 해상도 크기가 서로 맞바뀐 새로운 파일이 생성됩니다.

convert input.png -rotate 90 rotate_90.png

이미지를 수직 방향인 상하로 뒤집기 위해 -flip 옵션을 실행합니다.
해상도 크기는 그대로 유지되면서 이미지의 위아래 픽셀 위치가 반전된 결과물이 생성됩니다.

convert input.png -flip flip_vertical.png

이미지를 수평 방향인 좌우로 뒤집기 위해 -flop 옵션을 지정하여 변환을 진행합니다.
거울에 비친 것처럼 이미지의 좌우 방향만 대칭으로 반전된 결과 파일이 저장됩니다.

convert input.png -flop flop_horizontal.png

회전 및 반전 처리가 완료된 이미지 파일들의 규격 정보를 확인하기 위해 identify 명령어를 실행합니다.
90도 회전으로 인해 변경된 해상도 규격(200x300)과 원본 크기(300x200)를 유지한 상하좌우 반전 파일들의 상세 속성을 비교 검증합니다.

identify rotate_90.png flip_vertical.png flop_horizontal.png

흑백 색상 변환 및 용량 압축 (-colorspace, -quality)

컬러 이미지를 흑백 톤으로 변경하기 위해 -colorspace Gray 옵션을 지정하여 변환을 수행합니다.
RGB 색상 채널이 제거되고 단일 그레이스케일 색상 영역으로 변환된 흑백 이미지 파일이 생성됩니다.

convert input.png -colorspace Gray grayscale.png

이미지의 압축 품질을 조절하여 파일 용량을 줄이기 위해 -quality 30 옵션을 지정하여 변환을 진행합니다.
품질 수치를 낮춤으로써 이미지의 화질은 다소 감소하지만 저장 용량을 대폭 최적화한 압축 파일이 생성됩니다.

convert output.jpg -quality 30 compressed.jpg

압축 품질 설정 전후의 실제 파일 크기 차이를 비교하기 위해 ls -lh output.jpg compressed.jpg 명령어를 실행합니다.
기본 품질로 저장된 원본 파일과 품질을 30으로 낮춘 파일의 용량 변화를 사람이 읽기 쉬운 단위로 확인합니다.

ls -lh output.jpg compressed.jpg

각 이미지 파일에 적용된 실제 압축 품질 수치를 확인하기 위해 -format "%f: Quality %Q\n" 포맷 옵션을 지정하여 identify 명령어를 실행합니다.
이미지 메타데이터에 기록된 고유 품질 계수(%Q) 값을 추출하여 지정한 압축 설정이 정상적으로 적용되었는지 검증합니다.

identify -format “%f: Quality %Q\n” output.jpg compressed.jpg

지금까지 우분투 환경에서 ImageMagick convert 명령어의 주요 옵션별 실무 활용법을 간단하게 살펴보았습니다.
자주 쓰는 옵션을 조합해 쉘 스크립트나 배치 작업에 적용하여 이미지 처리 업무를 한층 더 효율화해보시기 바랍니다.