画像を自動リサイズしたい……どうにかできないか……
と色々していましたが、うまくいかず……
改めて調べていたら、見つけました……!
今回はそちらのバッチをちょこっと改造と、それに使うImageMagickというツールで躓いたところについて書いていきます。
準備:ImageMagickのダウンロード
このバッチはImageMagickというツールを使います。
なのでインストールをしてください。
ダウンロードはコチラから行えます。
自身の環境に合わせたものを選択してください!
って、今よくよく見て気づいたんだけど、mac版もあるからmacでも同じようにバッチ化できるんじゃ……?
リサイズバッチファイル
コチラの解説にある
このバッチファイルを改造しました。
コチラを「resize.bat」とか適当な名前で作成してください。
REM # 環境によっては、ImageMagickのコマンドは「magick <cmd>」じゃないと動かない setlocal enabledelayedexpansion REM # EXP=拡張子を入れてください set EXP=png REM # SIZE=長辺のサイズを入れてください set SIZE=640 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_resized.%EXP% ) else ( REM 縦幅 < 横幅 magick convert -resize %SIZE%x %%f %%~nf_resized.%EXP% ) )
で、このバッチファイルを、リサイズしたい画像が入っているフォルダに入れて実行!
縦横長い方を、SIZEで指定した長さにそろえてリサイズしてくれます!
pngじゃない拡張子の場合は、EXPにリサイズしたい拡張子をセットしてください!
ちなみに変更内容は
- 拡張子の指定を変数で行うようにした
- リサイズ後のサイズ指定を変数で行うようにした
- ImageMagickコマンドの修正(環境依存?)
の3点です。
環境によっては、「magick 」という記述が全ていらないかもしれません。
それについては続きをご覧ください。
ImageMagickのコマンドが通らない?
ImageMagickのコマンドなんですが、他のサイトなどを参考にしても
- identify ~
- convert ~
のように直で書かれているんですが、ぼくの環境だとどうもうまくいかず困っていました。
で、最終的にわかったのが
- magick identify ~
- magick convert ~
のように、コマンドの前に「magick 」と付けないと認識してくれないということでした。
環境依存なのか、入れている種類の違いなのか……
よく覚えていないんですが、DLL版を入れたような気がするんですよね。
インストール先のファイル的にもそんな気がするし。
でも今になってネット見ると「DLLじゃに方がいいよ」っていう記事を見かけたんですよね。
だから実はみんなDLLじゃない版を入れていて、そことの差でこの現象が起きているのかなとか、勝手に想像しています。
まぁちゃんと動くからいいんだけど。
macでのリサイズ……
automatorでリサイズする記事を見つけたので、そのうち試そうかと思います。
といってもImageMagickがmac版もあるみたいなので、そちらにシフトチェンジな可能性もありますが(笑)
あとがき
いかがでしたでしょうか?
これで記事作成の手間が1つ解消ですね。
オートアップローダーとかあれば最高なんだけどな……
はてなフォトライフ、もっと機能向上しませんかね?