대량의 이미지 파일을 webp로 변환해야 한다

대상

해당 문서는 맥사용자를 대상으로 한다.

목적

webp 변환 프로그램을 설치하고 쉘스크립트를 만들어서 변환하면 되지만 맥에서 수시로 간단하게 처리할 수 있는 방법이 있다. Automator를 이용해서 우클릭으로 변환버튼을 클릭해서 간단하게 많은 파일들을 변환할 수 있다. 나의 경우에는 이미지가 압축된 파일을 받아서 수천개되는 파일을 변환해야하기 떄문에 폴더를 지정해서 통쨰로 변환하는 방법을 공유하려고 한다.

방법

먼저 webp 변환 프로그램이 없다면 설치를 한다.

brew install webp

맥에서 아래 아이콘처럼 생긴 프로그램 Automater 를 실행한다.

그러면 다음과 같은 화면이 보인다.

빠른동작을 클릭하면 아래와 같은 화면이 나타난다.

왼쪽 목록에서 쉘스크립트 실행을 찾아서 오른쪽으로 드래그한다.

그리고 아래 와 같이 설정값들을 바꿔준다.

  1. 현재 수신하는 작업흐름 : 폴더
  2. 선택 항목 위치 : Finder
  3. 쉘스크립트 내용
# Check if at least one argument is provided
if [ "$#" -eq 0 ]; then
    echo "Usage: $0 <folder>"
    exit 1
fi

# Input folder
input_folder="$1"

# Create output folder if it doesn't exist
output_folder="$input_folder/webp_images"
mkdir -p "$output_folder"

# Loop through files in input folder
for f in "$input_folder"/*; do
    # Check if file is a regular file (not a directory)
    if [ -f "$f" ]; then
        # Check if file is an image (you can adjust the file extensions as needed)
        if [[ "$f" == *.jpg || "$f" == *.jpeg || "$f" == *.png || "$f" == *.gif ]]; then
            # Construct output file path with .webp extension
            fname="${f%.*}.webp"
            output_file="$output_folder/$(basename "$fname")"
            
            # Convert image to webp using cwebp
            /opt/homebrew/bin/cwebp -lossless -m 6 -metadata all -mt "$f" -o "$output_file"
            
            echo "Converted $f to $output_file"
        else
            echo "Skipping $f: Not an image file"
        fi
    fi
done

echo "Conversion complete. WebP images are saved in: $output_folder"

그러면 아래 이미지 처럼 설정이 된다.

그리고 커맨드+s로 ‘to webp’등으로 적당한 이름을 지어서 저장한다.

나는 좀 길게 적었다 ‘selected folder then transfer webp’

(요즘 영어를 배우고 있다.)

결론

이미지들이 잔뜩들어있는 폴더를 우클릭하면 아래와 같이 출력된다.

그러면 해당 폴더 아래 아래와 같이 변환된 이미지들이 저장되어있다.

이제 필요한 곳에 사용하면 끝.