Linux에서 이미지 파일의 크기를 조정하는 방법

이미지 파일의 용량은 상당히 클 수 있습니다. JPEG 형식이라 할지라도 파일 크기가 2MB를 넘어서 심지어 5MB에 이를 수도 있습니다. RAW 파일의 경우에는 더욱 커지겠지요. Linux PC에서 대규모 이미지 라이브러리를 관리해야 한다면 저장 공간을 효율적으로 활용하는 방법을 알아야 합니다. 파일 크기를 줄이는 가장 효과적인 방법 중 하나는 이미지의 크기를 조정하는 것입니다. 사진 라이브러리의 크기를 줄여서 저장 공간을 확보할 수 있습니다.

하지만 이미지 파일의 크기를 조정하는 것은 주의가 필요합니다. 과도하게 크기를 줄이면 화질이 눈에 띄게 저하될 수 있습니다. 따라서 이 가이드에서는 이미지 파일의 크기를 적절하게 조정하는 방법에 대해 알아보겠습니다.

ImageMagick 설치

Linux 운영체제는 다양한 유용한 도구들을 제공합니다. 그중 하나가 ‘convert’라는 도구입니다. 이 도구는 ImageMagick 패키지에 포함되어 있으며, 명령줄을 통해 이미지 파일을 조작할 수 있는 기능을 제공합니다. ‘convert’ 도구를 사용하려면 먼저 ImageMagick을 설치해야 합니다. 대부분의 Linux 배포판에는 이미 설치되어 있지만, 그렇지 않은 경우에는 간단하게 설치할 수 있습니다.

ImageMagick 패키지를 설치하려면 터미널을 열고 사용하는 운영체제에 맞는 다음 명령어를 입력하세요.

우분투

sudo apt install imagemagick

데비안

sudo apt-get install imagemagick

아치 리눅스

sudo pacman -S imagemagick

페도라

sudo dnf install imagemagick

오픈수세

sudo zypper install imagemagick

기타 Linux

ImageMagick은 Linux에서 여러 프로그램들이 이미지를 표시하고 처리하는 데 중요한 역할을 합니다. 즉, 대부분의 배포판에서 ImageMagick을 사용할 수 있습니다. 만약 위에 언급된 방법으로 설치가 안 된다면, 운영체제의 패키지 관리자를 통해 “ImageMagick”을 검색하여 설치하세요. 설치가 완료되면 ‘convert’ 명령어를 사용할 수 있습니다.

‘convert’ 명령어로 이미지 압축하기

이미지를 압축하면 종종 이미지 품질이 저하될 수 있습니다. 따라서 이미지 품질을 유지하면서 파일 크기를 줄이는 가장 좋은 방법은 이미지 크기를 조정하는 것입니다. 이미지 크기 조정을 통해 파일 크기를 훨씬 작게 만들면서 이미지의 품질도 어느 정도 유지할 수 있습니다.

‘convert’ 명령어를 사용하여 이미지 크기를 조정하려면, 먼저 터미널을 열고 해당 이미지 파일이 있는 디렉토리로 이동해야 합니다. 예를 들어 사진 파일이 ‘/home/username/pictures/’에 있다면 다음과 같이 명령어를 입력합니다.

cd ~/Pictures/

이제 ‘convert’ 명령어를 사용하여 이미지 크기를 조정할 수 있습니다. 이미지 크기를 20%로 줄여보겠습니다. 20% 정도가 이미지 품질과 파일 크기의 적절한 균형을 제공합니다. 만약 파일 크기를 더 줄여야 한다면 25%, 30%, 40% 등으로 조정해볼 수 있습니다. 그러나 크기를 줄일수록 이미지 품질은 떨어질 수 있다는 점을 명심해야 합니다.

convert -resize 20% image-file-name-original.jpg image-file-name-resized.jpg

‘convert’ 명령어는 JPG 외에도 다양한 파일 형식에서 작동합니다. 이미지 크기를 조정하려면, 파일 확장자와 출력 파일 이름을 적절하게 변경해야 합니다. 원본 파일 이름과 결과 파일 이름을 모두 지정해야 합니다.

여러 이미지 한 번에 압축하기

‘convert’ 명령어는 한 번에 하나의 이미지 파일만 처리할 수 있습니다. 여러 개의 이미지 파일을 한 번에 압축하는 것은 매우 번거로운 작업입니다. 하지만 ‘convert’ 명령어를 bash 스크립트와 함께 사용하면 여러 개의 이미지 파일을 한 번에 처리할 수 있습니다.

주의: 파일 이름이 다른 여러 개의 이미지를 일괄적으로 처리하는 데에는 제한이 있을 수 있습니다. 파일 형식이 동일한 파일만 일괄 변환하는 것이 좋습니다.

여러 이미지 파일을 한 번에 처리하려면 먼저 작업할 디렉토리를 만드는 것이 좋습니다. 변환하려는 이미지 파일들을 모두 해당 디렉토리에 넣고 작업하는 것이 좋습니다. 그렇지 않으면 여러 개의 이미지 파일이 파일 시스템을 복잡하게 만들 수 있습니다. ‘mkdir’ 명령어를 사용하여 작업 디렉토리를 만듭니다.

mkdir -p ~/Pictures/Convert-Images/

파일 관리자를 열고 새로 생성한 디렉토리를 찾아서 변환하려는 모든 이미지 파일을 해당 디렉토리로 이동합니다. 파일 이동이 완료되면 터미널에서 ‘cd’ 명령어를 사용하여 해당 디렉토리로 이동합니다.

cd ~/Pictures/Convert-Images/

터미널에서 다음 명령어를 입력합니다. 이 명령어는 디렉토리 내의 모든 JPG 파일을 찾아서 크기를 20%로 줄이고, 결과 파일 이름에 “-resized”를 추가합니다. 만약 PNG 파일이나 다른 형식의 파일을 처리하고 싶다면 *.jpg 부분을 *.png 등으로 변경해야 합니다.

for img in *.jpg; do
  convert -resize 20% "$img" "opt-$img"
done

크기 조정 스크립트 만들기

배치 이미지 크기 조정 명령어는 매우 유용하지만, 매번 긴 명령어를 입력해야 한다는 번거로움이 있습니다. 이 작업을 간단하게 만들기 위해 스크립트를 작성할 수 있습니다. 터미널을 열고 ‘touch’ 명령어를 사용하여 새로운 파일을 만듭니다. 이 파일은 이미지 크기 조정 스크립트 코드를 저장할 것입니다.

touch ~/Pictures/Convert-Images/batch-resize.sh

다음으로 Nano 텍스트 편집기를 엽니다.

nano ~/Pictures/Convert-Images/batch-resize.sh

스크립트 파일 안에 다음 코드를 복사하여 붙여넣습니다.

#!/bin/bash

# 사용자로부터 이미지 파일 확장자를 입력받습니다.

echo “이미지 파일의 확장자를 입력하세요:”

# 사용자 입력을 $files 변수에 저장합니다.

read files

# 이미지 크기를 조정합니다.

for img in *.$files; do
convert -resize 20% “$img” “resized-$img”
done

Ctrl + O를 눌러 스크립트 파일을 저장하고 Ctrl + X를 눌러 편집기를 닫습니다.

스크립트가 실행될 수 있도록 권한을 변경해야 합니다. 이 단계를 건너뛰면 스크립트가 제대로 작동하지 않습니다!

chmod +x ~/Pictures/Convert-Images/batch-resize.sh

스크립트를 사용하려면 크기를 조정하려는 이미지 파일들을 모두 ~/Pictures/Convert-Images/ 디렉토리에 넣습니다. 그 후 ‘cd’ 명령어로 해당 디렉토리로 이동한 후 스크립트를 실행합니다. 파일 확장자를 입력할 때는 마침표(.)를 생략해야 합니다. 그렇지 않으면 스크립트가 제대로 작동하지 않습니다!

cd ~/Pictures/Convert-Images/
./batch-resize.sh