【Linux】指定したディレクトリ内の画像を一括リサイズ・圧縮するスクリプト

Linux

指定したディレクトリ内の画像を一括リサイズ・圧縮するbashスクリプトをご紹介します。

スポンサーリンク

convertコマンドをインストールする

画像のリサイズ・圧縮にはImageMagicのconvertコマンドを使います。aptやyumであらかじめインストールしておきましょう。

$sudo apt-get install imagemagick
スポンサーリンク

指定したディレクトリ内の画像をリサイズ・圧縮する

さっそくスクリプトをご紹介します。

指定したディレクトリ内の画像を長辺1920px、品質50のJPEGファイルにリサイズし、保存します。

#!/bin/bash

# 入力ディレクトリと出力ディレクトリのパス
input_dir="/path/to/input_directory"
output_dir="/path/to/output_directory"

# 入力ディレクトリ内のすべてのJPEG画像を処理
for image_file in "$input_dir"/*.jpeg; do
    # 出力ファイルのパスを作成
    output_file="$output_dir/$(basename "$image_file")"
    
    # 画像をリサイズしてJPEG品質を50に圧縮し、EXIF情報を保持して出力ファイルに保存
    convert "$image_file" -resize 1920x -quality 50 -preserve-exif "$output_file"
done

echo "画像のリサイズと圧縮が完了しました。"

ディレクトリ内

EXIFを除去しながら、画像をリサイズ・圧縮する

#!/bin/bash

# 入力ディレクトリと出力ディレクトリのパス
input_dir="/path/to/input_directory"
output_dir="/path/to/output_directory"

# 入力ディレクトリ内のすべてのJPEG画像を処理
for image_file in "$input_dir"/*.jpeg; do
    # 出力ファイルのパスを作成
    output_file="$output_dir/$(basename "$image_file")"
    
    # 画像をリサイズしてJPEG品質を50に圧縮し、EXIF情報を保持して出力ファイルに保存
    convert "$image_file" -resize 1920x -quality 50 "$output_file"
done

echo "画像のリサイズと圧縮が完了しました。"

-preserve-exifオプションを削除すると、EXIF情報が削除されます。

コメント

タイトルとURLをコピーしました