Imagemagick 이용, 이미지 사이즈 일괄 변경 방법

|

사이트에 글을 쓰는 사람이 단 관리자 한명이라면 애정을 가지고 최적화된 이미지를 사용하겠지만 불특정 다수가 글을 쓰는 경우 최적화된 이미지를 사용하는 확율은 그리 크지 않습니다.

더우기 모바일이 보편화된 시점에서 이미지 편집이 쉽지는 않기 때문에 대부분 그냥 활영한 사진을 그대로 올릴 가능성이 높죠.

스마트폰 사진 사양이 고급화되면서 이미지 크기도 커졌기때문에 대용량 파일을 올릴 가능성이 커지지죠.

그렇기때문에 정기적으로 이미지 크기와 품질을 최적화해서 적절한 사이즈로 만들어주는 것이 필요합니다.

여기에서는 Imagemagick을 이용해 쉽게 이런 작업을 할 수 있는 방법을 찾아 보았습니다.

Imagemagick 설치

먼저 Imagemagick을 설치합니다.

우분투용 Imagemagick 패키지가 있기때문에 설치는 매우 간단합니다.

apt-get update
apt-get install imagemagick -y

배치 실행 파일을 만듭니다.

편집기를 이용해 패치 실행 sh 파일을 만듭니다.

nano resizeimage.sh

아래와 같은 내용을 추가 합니다.

# 이미지가 있는 절대 주소를 입력합니다(absolute path to image folder)
FOLDER="/var/www/happist.com/wp-content/uploads"

# 이미지 최대 폭을 설정합니다.max width
WIDTH=1024

# 이미지 최대 높이를 설정
# 쇼핑몰등은 설명 이미지를 길게 만드는 경우가 많아 높이 조정은 문제가 있어 가능한 큰 값을 지정
HEIGHT=102400


# PNG와 JPG의 폭이나 높이가 최대치를 넘어가면 이미지 폭이나 높이를 조정합니다. 
# 이때 imagemagick은 그 이미지의 폭과 높이 비율을 유지합니다. 
find ${FOLDER} -iname '*.jpg' -o -iname '*.png' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;

# PNG만 폭이나 높이가 최대치를 넘어가면 이미지 폭이나 높이를 조정합니다. 
# 이때 imagemagick은 그 이미지의 폭과 높이 비율을 유지합니다.
# find ${FOLDER} -iname '*.png' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;

# JPG만 폭이나 높이가 최대치를 넘어가면 이미지 폭이나 높이를 조정합니다. 
# 이때 imagemagick은 그 이미지의 폭과 높이 비율을 유지합니다.
# find ${FOLDER} -iname '*.jpg' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;

# 다른 대안 소개 폭과 높이를 일정 비율로 축소하는 방법
# mogrify -path ${FOLDER} -resize ${WIDTH}x${HEIGHT}% *.png -verbose

다음으로는 배치 파일 resizeimage.sh 파일이 실행 가능하도록 만듭니다.

chmod a+x resizeimage.sh

배치 파일 실행

이제 준비가 다 끝났습니다. 아래와 같은 방식으로 배치 파일 resizeimage.sh를 실행시켜 이미지 사이즈를 조정하도록 합니다.

sh resizeimage.sh

나중에 크론탭을 이용해 정기적으로 이를 실행하면 됩니다.

참고

혹시 서버를 고민하신가요?

안녕하세요?

저는 Vultr를 사용하고 있는데요. 혹 신규로 서버 구축을 고민하신다면 Vultr도 검토해 보시라고 권해드립니다.

저는 2016년부터 Vultr을 사용했는데 큰 불만없이 잘 사용하고 있습니다. 아래 사용기도 한번 보시구요.

한국과 일본 서버 중에서 리노드나 AWS도 좋은 대안이지요. Vultr도 장점이 많은 VPS이고 대안으로 검토해볼만합니다. 성능면에서 괜찮다고 생각합니다.

혹시 Vultr에 관심이 있다면 아래 리퍼럴 링크를 이용해 보세요. 신규 계정을 등록 시 10$을 받을 수 있는 제휴 링크입니다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments