ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
ImageMagick のDLL版をインストールしなおして、バッチファイルでPNGファイルの一括トリミング ( No.1 )
日時: 2009/03/19 14:08
名前: lightbox



DLL 版の違いは、C言語用のライブラリと Perl用のライブラリを追加できるようになって
いる事だけのようです。厳密に比較した結果ではありませんが、プログラマならこちらです。



PNG ファイルのままではトリミングできないので、一括処理用に対象となる PNG ファイル
を一つのディレクトリにコピーして、以下の処理を実行しました。

拡張子:
convert *.png png.tif
これは、大量の画像ファイルを一括管理するのに必要と思われるのでテストしましたが、 直接する例が以下にあります 基本、直感的なコマンドが多いですね。とても多用な処理が想定されているので 「これはできるだろう」が普通にできるような気がします で、複雑な事は無理だろうと、昨日は VBSCript でテストしたのですが、 convert *.png png.tif も含めて一括で実行できるバッチファイルが以下です。
拡張子:
convert ..\*.png png.bmp
convert *.bmp -crop 380x540+50+50 +repage crop%%03d.png
del *.bmp
これは、一つ上のディレクトリに対象となる PNG を全て用意して、 カレントに トリミングした PNG ファイルを作成します。 ( PNG から直接できるのなら一行で書けるのですが・・・ ) crop%%03d.png の %%03d は C言語の printf のフォーマット指定ですが、 コマンドラインなので、% が %% になっています。 crop000.png という、数字部分が3桁になったファイル名になります ※ ..\*.png の部分を png.tif に差し替える事ができます。 crop はトリミングの意味で、380x540+50+50 がサイズと位置情報です。 座標の原点は左上となります。他にもいろいろ指定方法がありますが、 かえって混乱するのでこれが一番良いと思います。 repage を指定しないと、画像サイズが変わらずに切り抜かれなかった 部分が余白のようになります。 1) crop のみ 2) repage あり ※ 上記リンク先のサンプルにある rose: という キーワードの後ろに : が付いた ※ ものは、内部で扱える予約されたキーワードです。( この場合 gif 画像 )
捕捉ですが、インストール時のパス設定はシステムの PATH 環境変数の先頭に来ます これは、Windows に既に convert というコマンドがあるからなのですが、 めったに使わないどちらかと言えば危険なコマンドなので問題は無いと思います。