投稿日検索
2015年6月
1234567
891011121314
15161718192021
22232425262728
2930  

カテゴリー検索

【お知らせ】
●2013年1月以降の投稿をRetinaディスプレイに対応

最新のコメント
  1. はじめまして.現在,こちらの車両群を管理している団体の者です. 2004年時点…

,

シェルスクリプトで画像処理(3)ImageMagick編

お題
透かし画像をレイヤーする

sipsは組み込み済みなのですぐに使えますが、透かしのレイヤーはできません
いろいろ調べた結果、ImageMagickを導入するのが良いと分かりました

インストール
ImageMagick公式サイト
ダウンロードページ
インストーラパッケージ版なので、アプリをインストールする手順でokです
我輩の環境はOSX10.9ですが、Yosemite版でも特に問題は起こっていません。

例:デスクトップのprocessというフォルダ内にあるJPEG画像と、αチャンネルを持った透かし画像「mark.png」をレイヤーします

#!/bin/bash
cd /Users/psychic-wave.com/Desktop/process
for file in *.jpg
do
convert ${file} mark.png -gravity center -composite ${file}
done

前回同様、2行目は各自の環境やフォルダ名で異なります
また5行目の「mark.png」の部分もファイル名や置き場所を変えても構いません
「mark.png」の代わりにファイルをドラッグ&ドロップすれば良い訳です

また縦横のサイズを取得できるので、縦画像/横画像を判定して貼付けるとか、透かしを選択する分岐もできますね

#!/bin/bash
cd /Users/psychic-wave.com/Desktop/process
for file in *.jpg
do
width=`identify -format "%w" ${file}`
height=`identify -format "%h" ${file}`
if [ ${width} -gt ${height} ]
then
convert ${file} mark1.png -gravity center -composite ${file}
else
convert ${file} mark2.png -gravity center -composite ${file}
fi
done

5行目で横辺長の取得
6行目で縦辺長の取得
7行目が判定文で、横長なら9行目/縦長なら11行目にジャンプします
つまり「mark1.png」は横長用/「mark2.png」は縦長用の透かしファイルです

圧縮率を指定したい場合は「-quality」オプションを追加します
9/11行目後半に

(前略)-composite -quality 90 ${file}

という具合に追加で良いです

圧縮率はツールに依ってレートが異なるようで、概ね
sips=75%
Image Magick=90%
GIMP=90%
でほぼ同程度のサイズとクォリティになるようです
photoshopのJPEGはサイズの割に綺麗ではないので使いたくありません

ここまでは作業フォルダを固定していましたが、任意のフォルダを指定したい時は2行目の代わりに

echo -n 'input folder > "return" key '
read PASSNAME
cd ${PASSNAME}

の3行を記述します ”(クォーテーション)の中は見てくれだけなので適当に

起動すると
terminal006” title=

これ、どちらが良いかは一概には言えませんね
作業フォルダを固定すればコマンドファイルクリックだけで全自動ですが、ファイルの移動の手間があります
フォルダ入力は毎回起動時にフォルダをインプットしなければなりません
ま、お好みで

というわけで、これで当初の目的は達成されました!o(*^▽^*)o
あとは作業フローに合わせてカスタマイズして行けば良い訳であります

シェルスクリプトで画像処理(4)bpg圧縮編につづく


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)