ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: ImageMagick のDLL版をインストールしなおして、バッチファイルでPNGファイルの一括トリミング
名前: lightbox
処理選択
パスワード

件名 ImageMagick のDLL版をインストールしなおして、バッチファイルでPNGファイルの一括トリミング
名前 lightbox
コメント
DLL 版の違いは、C言語用のライブラリと Perl用のライブラリを追加できるようになって
いる事だけのようです。厳密に比較した結果ではありませんが、プログラマならこちらです。

http://lightbox.cocolog-nifty.com/photos/app5/imi.png

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

@DIV
convert *.png png.tif
@END

これは、大量の画像ファイルを一括管理するのに必要と思われるのでテストしましたが、
直接する例が以下にあります

基本、直感的なコマンドが多いですね。とても多用な処理が想定されているので
[[「これはできるだろう」]]が普通にできるような気がします
で、複雑な事は無理だろうと、昨日は VBSCript でテストしたのですが、
[[convert *.png png.tif]] も含めて一括で実行できるバッチファイルが以下です。

@DIV
convert ..\*.png png.bmp
convert *.bmp -crop 380x540+50+50 +repage crop%%03d.png
del *.bmp
@END

これは、一つ上のディレクトリに対象となる PNG を全て用意して、
カレントに トリミングした PNG ファイルを作成します。
( PNG から直接できるのなら一行で書けるのですが・・・ )

crop%%03d.png の %%03d は C言語の printf のフォーマット指定ですが、
コマンドラインなので、% が %% になっています。

crop000.png という、数字部分が3桁になったファイル名になります

@C:red(※ ..\*.png の部分を png.tif に差し替える事ができます。)


crop はトリミングの意味で、380x540+50+50 がサイズと位置情報です。
座標の原点は左上となります。他にもいろいろhttp://www.imagemagick.org/script/command-line-processing.php#geometry(指定方法があります)が、
かえって混乱するのでこれが一番良いと思います。

repage を指定しないと、画像サイズが変わらずに切り抜かれなかった
部分が余白のようになります。

1) http://www.imagemagick.org/Usage/crop/#crop(crop のみ)
2) http://www.imagemagick.org/Usage/crop/#crop_repage(repage あり)

※ 上記リンク先のサンプルにある rose: という キーワードの後ろに : が付いた
※ ものは、内部で扱える予約されたキーワードです。( この場合 gif 画像 )


@LINE

捕捉ですが、インストール時のパス設定はシステムの PATH 環境変数の先頭に来ます

http://lightbox.cocolog-nifty.com/photos/app5/imi_path.png

これは、Windows に既に http://itpro.nikkeibp.co.jp/article/Windows/20051025/223344/?ST=win(convert) というコマンドがあるからなのですが、
めったに使わないどちらかと言えば危険なコマンドなので問題は無いと思います。