2025/11/02(日) [n年前の日記]
#2 [cg_tools][prog] 画像ファイルを複数のサイズで縮小したい
親父さんがWebサイトを更新する際、複数のサイズで画像を縮小しているようなのだけど、その都度GUIアプリ上のサイズ指定を打ち込み直しているのが気になった。複数のサイズで一気に縮小画像を生成してくれるツールは無いのだろうか。
ググってみたけれど、ちょっと見当たらない…。プリセットを複数保存できるツールはあるようだけど…。
とりあえず、Windowsのbatファイルでできるんじゃないかと試してみた。縮小画像の生成自体は ImageMagick を使う。
環境は Windows11 x64 25H2 + ImageMagick 7.1.2-8 portable Q16 HDRI x64。
以下のような感じになった。
_resize_image_files.bat
ImageMagick に渡すオプションは以下を参考にさせてもらった。ありがたや。
_ImageMagick の画像リサイズArtifact対策 Resize - Qiita
問題は、このbatファイルを親父さんに渡しても使えるのかどうか…。ショートカットファイルにドラッグアンドドロップするだけで使えるはずだけど、歳が歳だから新しい操作手順を覚えられないようで…。それどころか今まで行っていた操作手順もどんどん忘れているし…。
ググってみたけれど、ちょっと見当たらない…。プリセットを複数保存できるツールはあるようだけど…。
とりあえず、Windowsのbatファイルでできるんじゃないかと試してみた。縮小画像の生成自体は ImageMagick を使う。
環境は Windows11 x64 25H2 + ImageMagick 7.1.2-8 portable Q16 HDRI x64。
以下のような感じになった。
- エクスプローラから複数の画像ファイルをbatファイルのショートカットファイルにドラッグアンドドロップすれば、720ドット、1000ドット、2つの縮小画像を生成する。
- 縮小画像は、*_720.jpg、*_1000.jpg になる。
_resize_image_files.bat
@echo off @rem 複数の画像ファイルをドラッグアンドドロップで渡して複数の縮小画像を作成する。 @rem Imagemagick 7.x.x (magick.exe) を利用して縮小画像を作っている。 chcp 65001 > NUL setlocal enabledelayedexpansion @rem ImageMagick 7.x.x にパスを通す。常にパスを通してあるなら不要 set PATH=%IM7_PATH%;%PATH% @rem set MAGICKOPTA=-filter Lanczos -define filter:blur=.9891028367558475 -distort Resize @rem set MAGICKOPTB=-quality 90 set MAGICKOPTA=-colorspace RGB -filter Lanczos -define filter:blur=.9891028367558475 -distort Resize set MAGICKOPTB=-colorspace sRGB -quality 90 echo 縮小画像を作成します。 echo. for %%F in (%*) do ( echo 元画像 : %%F magick %%F %MAGICKOPTA% 720x720 %MAGICKOPTB% "%%~dpF%%~nF_720.jpg" echo 縮小画像 %%~nF_720.jpg を作成しました。 magick %%F %MAGICKOPTA% 1000x1000 %MAGICKOPTB% "%%~dpF%%~nF_1000.jpg" echo 縮小画像 %%~nF_1000.jpg を作成しました。 ) echo. echo --- 処理が終わりました。何かキーを押してください。 --- pause endlocal
- %* で、batファイルに渡された複数ファイルのパス群を、空白区切りの1つの文字列にしてくれるらしい。
- for %%F in (%*) do ( ) で1ファイルずつ処理ができる。ファイルパスは %%F に入っていく。
- %%~dpF で、ドライブ文字とディレクトリパスを取得できる。最後にディレクトリ区切り文字(\)が入る。
- %%~nF で、拡張子を除いたファイル名が得られる。
- chcp 65001 でコードページ/文字コードをUTF-8に変更。SJIS にしたい時は chcp 932。
- chcp 65001 > NUL とすれば現在のコードページ表示をしないようにできる。
- pause でキー入力待ちになる。
ImageMagick に渡すオプションは以下を参考にさせてもらった。ありがたや。
_ImageMagick の画像リサイズArtifact対策 Resize - Qiita
問題は、このbatファイルを親父さんに渡しても使えるのかどうか…。ショートカットファイルにドラッグアンドドロップするだけで使えるはずだけど、歳が歳だから新しい操作手順を覚えられないようで…。それどころか今まで行っていた操作手順もどんどん忘れているし…。
[ ツッコむ ]
以上です。