convert 명령어로 ImageMagick 을 사용할 수 있습니다. ImageMagick 은 쉽게 말하자면 터미널용 포토샵이라고 할 수 있습니다. 맥과 리눅스에서는 convert 명령어로, 윈도우에서는 magick 명령어로 사용합니다.
설치
brew install imagemagick
입력파일 규칙
글로빙
컴퓨터 프로그래밍에서 글로빙(Globbing)은 와일드카드( * ? [abc] )로 여러 파일이름의 집합을 지정한다는 뜻입니다. 아래 명령어에서 *.jpg 는 한개 이상의 jpg 파일 집합을 입력하고 images.gif 파일로 출력해줍니다.
convert *.jpg images.gif
텍스트 파일 내용 입력
filenames.txt 파일 준비
image_1.jpg
image_2.jpg
image_3.jpg
image_4.jpg
"@ + 파일명" 으로 파일내용을 파일 이름으로 입력할 수 있습니다.
convert @filenames.txt out.gif
범위선택 입력
image-1.jpg, image-2.jpg, image-3.jpg... 와 같이 넘버링이 되어있는 파일의 범위를 선택할 수 있습니다.
convert 'image-%d.jpg[1-3]' -resize 100x100 out.jpg
이미지 포맷 변환
# png -> jpg
convert image.png image.jpg
# jpg -> png
convert image.jpg image.png
크기변환
큰 사이즈 기준으로 크기변경
# 방법 1
convert image.jpg -resize 50x50 out.jpg
# 방법 2
convert 'image.jpg[50x50]' out.jpg
# 방법 3 (모든 jpg 파일 크기변경)
convert '*.jpg[50x50]' out.jpg
작은 사이즈 기준으로 크기변경
convert image.jpg -resize 50x50^ out.jpg
이미지 비율을 무시하고 크기변경
convert image.jpg -resize 50x50! out.jpg
픽셀 기준으로 크기변경
convert image.jpg -resize 100@ out.jpg
비율을 기준으로 크기변경
convert image.jpg -resize 50% out.jpg
잘라내기
# 방법 1
convert image.jpg -crop 30x30+50+50 out.jpg
# 방법 2
convert -extract 30x30+50+50 image.jpg out.jpg
# 방법 3
convert 'image.jpg[30x30+50+50]' out.jpg
이미지 회전
# 45° 회전
convert image.jpg -rotate 45 out.jpg
# 배경색 투명설정
convert image.jpg -matte -background none -rotate 90 out.png
이미지 반전
# 좌우 반전, flop
convert image.jpg -flop out.jpg
# 상하 반전, flip
convert image.jpg -flip out.jpg
테두리 제거하기
convert img.jpg -trim out.jpg
테두리 추가하기
convert img.jpg -bordercolor orange -border 20 out.jpg
색상 조정
# 흑백 이미지 생성
convert image.jpg -colorspace gray out.jpg
# sepia 톤 이미지 생성
convert image.jpg -sepia-tone 80% out.jpg
# 밝은 이미지 생성
convert image.jpg -sigmoidal-contrast 3,0% out.jpg
# 어두운 이미지 생성
convert image.jpg -sigmoidal-contrast 3,100% out.jpg
캔버스 이미지 생성
# 800x600 픽셀 흰색 이미지 파일 생성
convert -size 800x600 xc:white image.jpg
# 800x600 픽셀 파란색 이미지 파일 생성
convert -size 800x600 xc:blue image.jpg
# 800x600 픽셀 투명 이미지 파일 생성
convert -size 800x600 xc:none image.png
텍스트 이미지 생성
# 사용 가능한 폰트 확인
convert -list font
# 횐색 배경색, 검정 전경색 텍스트 이미지파일 생성
convert -background white -fill black \
-font "/Users/JH/Library/Fonts/TmoneyRoundWindRegular.otf" \
-pointsize 24 label:"Hello\n안녕 하세요" out.png
GIF 애니메이션 만들기
convert -delay 10 -loop 0 img_*.jpg anim.gif
-delay 10 : 0.1초 간격
-loop 0 : 무한 반복
프레임 추출
'images.gif[0]' 와 같이 프레임 번호를 입력하면 해당 프레임 이미지를 추출해낼 수 있습니다.
# 0 번 프레임 추출
convert 'images.gif[0]' image.png
# 0, 1, 2, 3 번 프레임 추출
convert 'images.gif[0-3]' image.png
# 2, 3, 4 번 프레임 추출
convert 'images.gif[2,3,4]' image.png
PDF 파일 만들기
# 모든 jpg
convert "*.jpg" file.pdf
# jpg, jpeg, png 모두 포함
convert "*.{jpg,jpeg,png}" file.pdf
PDF 파일 이미지 추출하기
# 모든 페이지 추출
convert file.pdf img_%d.jpg
# 3번째 페이지 추출
convert "file.pdf[2]" img.jpg
# 3~5 페이지 추출
convert "file.pdf[3-5]" img.jpg
기본제공 이미지와 패턴
빌트인 이미지로 granite, logo, netscape, rose, wizard 를 사용할 수 있습니다. 아래 명령과 같이 logo: 와 같은 형식으로 이미지 파일을 입력합니다.
convert logo: out.png
빌트인 패턴으로 checkerboard, bricks, circles, crosshatch 등을 사용할 수 있습니다. 아래 명령과 같이 pattern:checkboard 와 같은 형식으로 패턴을 입력합니다.
# 기본 패턴 출력
convert pattern:checkerboard checkerboard.png
# 패턴 크기 정의
convert -size 640x480 pattern:checkerboard checkerboard.png
ICO 아이콘 파일 만들기
# 필요한 크기 아이콘 생성
convert icon_origin.png -resize 16x16 -depth 32 icon_16.png
convert icon_origin.png -resize 32x32 -depth 32 icon_32.png
convert icon_origin.png -resize 48x48 -depth 32 icon_48.png
convert icon_origin.png -resize 64x64 -depth 32 icon_64.png
convert icon_origin.png -resize 128x128 -depth 32 icon_128.png
convert icon_origin.png -resize 256x256 -depth 32 icon_256.png
convert icon_origin.png -resize 512x512 -depth 32 icon_512.png
# ico 아이콘 파일 생성
convert icon_*.png icon.ico
이미지 비교
convert dot.png dot2.png -compare out.png
두 이미지 반반 합치기
convert earth.jpg moon.jpg -crop 2x1@ -delete 1,2 +append left-right.jpg
convert earth.jpg moon.jpg -crop 1x2@ -delete 1,2 -append top-bottom.jpg
crop 2x1@ 가로 2분할이고 crop 1x2@ 는 세로 2분할입니다. crop 결과로 earth.jpg → 0, 1 moon.jpg → 2, 3 총 4개의 이미지가 생성되는데 이중 1, 2를 제거(delete)하고 남은 0과 3 이미지를 append 해서 결과 이미지를 생성합니다. +append 는 수평, -append 는 수직으로 이미지를 합쳐줍니다.
댓글