蔵書管理で使う本の表紙画像を長辺250ピクセルとしてリサイズする用途のもの。
スキャンしたり拾ってきたりした画像は大概求めるよりもサイズが大きくてね。
以前はIrFanViewを開いてはポチポチと縮小していたものだが、
ImageMagickならコマンドラインから呼び出せると聞いたので、
蔵書登録作業における部分最適化を試みたという次第。
リサイズルーチンは下記を参考に、やや追記加えた感じで使用中。
長辺の長さを一定にして画像を一括リサイズするbatを書いた - Qiita
同じディレクトリのpng画像を長辺900pxにリサイズするbatファイル(http://qiita.com/smison/items/d32eb72be807e099dfa0) · GitHub
バッチ本体を配置するドライブとかフォルダは任意で対応を任すところ。
※実行にはImageMagickのインストールが必要
・ImageMagickで画像をリサイズ
resize.bat
@echo off REM Image Magick - 画像を長辺に合わせてリサイズ REM version 0.01.2 REM 2016/09/10 REM by.REGEKATSU REM 変換後の長辺サイズを設定 set RESIZE=250 REM 画像名のサフィックスを設定 set SUFFIX=_resized REM 出力画像形式オプション REM 0=元と同じ画像形式, 1=全て指定した画像形式 set OUT_OPTION=1 REM 出力画像形式の指定 set OUT_EXT=.png REM 引数の分だけ処理を実行 :loop if "%~1"=="" goto end REM 出力画像形式が元画像と同じ場合 if %OUT_OPTION%==0 set OUT_EXT=%~x1 REM 入力画像の拡張子を小文字に変換 set IN_EXT=%~x1 for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do call set IN_EXT=%%IN_EXT:%%i=%%i%% REM 入力が画像であるか確認 set IS_TRUE=FALSE if %IN_EXT%==.bmp set IS_TRUE=TRUE if %IN_EXT%==.tif set IS_TRUE=TRUE if %IN_EXT%==.tiff set IS_TRUE=TRUE if %IN_EXT%==.jpg set IS_TRUE=TRUE if %IN_EXT%==.jpeg set IS_TRUE=TRUE if %IN_EXT%==.gif set IS_TRUE=TRUE if %IN_EXT%==.png set IS_TRUE=TRUE if %IS_TRUE%==TRUE ( setlocal enabledelayedexpansion REM 画像の縦幅を取得 for /f "usebackq tokens=*" %%i in (`identify -format '%%h' %1`) do @set HEIGHT=%%i REM 画像の横幅を取得 for /f "usebackq tokens=*" %%i in (`identify -format '%%w' %1`) do @set WIDTH=%%i REM 幅情報に含まれる前後の「'」を除去 @set WIDTH=!WIDTH:~1,-1! @set HEIGHT=!HEIGHT:~1,-1! if !HEIGHT! GEQ !WIDTH! ( REM 縦幅>=横幅 convert -resize x%RESIZE% %1 "%~dpn1%SUFFIX%%OUT_EXT%" ) else ( REM 縦幅<横幅 convert -resize %RESIZE%x %1 "%~dpn1%SUFFIX%%OUT_EXT%" ) REM 処理を行った画像情報を表示 echo %1 → %~n1%SUFFIX%%OUT_EXT%、長辺 %RESIZE%px にリサイズ ) REM 次の引数へシフト shift goto loop :end
・コンテキストメニューに追加
※レジストリはresize.batが以下パスにあるとした場合のもの
C:\regekatsu\utility\ImageMagick\resize.bat
ImageMagickで画像をリサイズ.reg
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell] [HKEY_CLASSES_ROOT\*\shell\imagemagickresize] @="ImageMagickで画像をリサイズ(&I)" [HKEY_CLASSES_ROOT\*\shell\imagemagickresize\command] @="\"C:\\regekatsu\\utility\\ImageMagick\\resize.bat\" \"%1\""