사이트에 글을 쓰는 사람이 단 관리자 한명이라면 애정을 가지고 최적화된 이미지를 사용하겠지만 불특정 다수가 글을 쓰는 경우 최적화된 이미지를 사용하는 확율은 그리 크지 않습니다.
더우기 모바일이 보편화된 시점에서 이미지 편집이 쉽지는 않기 때문에 대부분 그냥 활영한 사진을 그대로 올릴 가능성이 높죠.
스마트폰 사진 사양이 고급화되면서 이미지 크기도 커졌기때문에 대용량 파일을 올릴 가능성이 커지지죠.
그렇기때문에 정기적으로 이미지 크기와 품질을 최적화해서 적절한 사이즈로 만들어주는 것이 필요합니다.
여기에서는 Imagemagick을 이용해 쉽게 이런 작업을 할 수 있는 방법을 찾아 보았습니다.
Table of contents
목차 보이기
Imagemagick 설치
먼저 Imagemagick을 설치합니다.
우분투용 Imagemagick 패키지가 있기때문에 설치는 매우 간단합니다.
apt-get update
apt-get install imagemagick -y
Code language: PHP (php)
배치 실행 파일을 만듭니다.
편집기를 이용해 패치 실행 sh 파일을 만듭니다.
nano resizeimage.sh
Code language: PHP (php)
아래와 같은 내용을 추가 합니다.
# 이미지가 있는 절대 주소를 입력합니다(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
Code language: PHP (php)
다음으로는 배치 파일 resizeimage.sh 파일이 실행 가능하도록 만듭니다.
chmod a+x resizeimage.sh
Code language: PHP (php)
배치 파일 실행
이제 준비가 다 끝났습니다. 아래와 같은 방식으로 배치 파일 resizeimage.sh를 실행시켜 이미지 사이즈를 조정하도록 합니다.
sh resizeimage.sh
Code language: PHP (php)
나중에 크론탭을 이용해 정기적으로 이를 실행하면 됩니다.