実現したいこと
複数の画像をアスペクト比はそのままで
長辺が1000pxとなるよう一括変換したいです。
前提
同一フォルダ内にある複数画像の長辺が1000pxとなるように
バッチファイルを作成したいです。
発生している問題・エラーメッセージ
一度バッチファイルを実行し、長辺が1000pxとなった画像を
再度バッチにかけると短辺が1000pxになってしまいます。
運用上、同じ画像を複数回変換する想定はありませんが、
原因が分かればご教示いただきたくお願いいたします。
例:
元画像:600×800
↓バッチ1回目実行
750×1000
↓バッチ2回目実行
1000×1333 (本来は750×1000から変わらない想定)
該当のソースコード
setlocal enabledelayedexpansion
REM # EXP=拡張子を入れてください
set EXP=jpg
REM # SIZE=長辺のサイズを入れてください
set SIZE=1000
for %%f in (.%EXP%) do (
REM 画像の縦幅を取得
for /f "usebackq tokens=" %%i in (magick identify -format '%%h' %%f
) do @set HEIGHT=%%i
REM 画像の横幅を取得
for /f "usebackq tokens=*" %%i in (magick identify -format '%%w' %%f
) do @set WIDTH=%%i
if !HEIGHT! GEQ !WIDTH! (
REM 縦幅 >= 横幅
magick convert -resize x%SIZE% %%f %%~nf.%EXP%
) else (
REM 縦幅 < 横幅
magick convert -resize %SIZE%x %%f %%~nf.%EXP%
)
)
回答1件
あなたの回答
tips
プレビュー