趣味でやってるお酒を紹介し続けるっていうブログを書いてるんですよ。
そのブログでは、かなり写真を撮ることが多くて
その分、画像編集をする機会も多いんですよ。
友達から写真を投稿するときには
ロゴをつけたほうが良いって聞いたから
GIMP使って一枚一枚丁寧に貼り付けてたわけです。
でも写真がたくさんになる記事の時は
もうロゴを貼り付けるだけで
1時間位かかってたんですよ。
手作業でいちいち貼り付けを繰り返していると
もう頭おかしくなるかと(笑)
そこでどうにか楽したい。
ということで
ImageMagickというソフトウェアを発見。
http://www.imagemagick.org/script/index.php
ちらっと探したけど、一括で画像のサイズ変更するよ的な記事はたくさんありました。
けど複数の画像に1つのロゴを自動で埋め込んでいく
みたいなのは、ぱっとみありませんでした。
せっかくだし、シェルスクリプトとImageMagickを使って
自分で作ってみることにしました。
完成のイメージは
シェルスクリプトでImageMagickのコマンドを用意しておいて
ターミナルで叩けば、ディレクトリ内にある写真全部を自動で
ロゴを埋め込んでいく
って感じかな?
一応書きなぐったものだから
参考程度にもならないだろうけど
箸休めぐらいだと思ってください。
ImageMagickには画像の上に画像を貼り付けるコマンドがあるんです。
convert
近いうちに記事をまとめようと思うけど
現時点では公式サイト見たほうが早いかも。
つかうロゴはこれです。
まあどこでもいいけど、一応デスクトップに
「Test_ImageMagick」というディレクトリを作成します。
そこにロゴ画像.PNG(1個)と、ロゴを埋め込む写真.JPG(今回はテストだから3個)を
どんどん入れていきます。
今回は、ビアフェス東京で飲んだビールの写真を入れていきまーす。
さて、シェルスクリプトを作ります。
タイトルはimage.shでいいかな。
1 2 3 4 5 6 |
#!/bin/bash for image in *.JPG; do imagename=( `echo $image | tr -s '.' ' '` ) convert $image ajilogo.png -gravity southeast -geometry +20+20 -composite ${imagename[0]}.${imagename[1]} done |
あとは、Test_ImageMagick内で
ターミナル起動。
シェルスクリプトを実行するだけです。
1 |
sh image.sh |
ほらできでる!
完成っぽいよ!!
左下にロゴがばっちり埋め込まれてます。
これを作ったおかげで
ディレクトリにロゴを入れたい写真をポコポコ入れたら
シェルスクリプトどーーん!!
ものの数十秒でらくらく完成です(笑)
一応3枚ほど載せておきますけど
位置とか完璧ですよ(泣)
位置も簡単に変更できるからめっちゃくりゃ楽になりました。
手作業でやるとどうしても
ロゴの位置がズレたり、めっちゃ時間かかったりしちゃうから
sh image.sh
で自動化(半かも)出来ました。
*他にもっと良いやり方があったら教えて下さい。
そういえばImageMagickの
identify -verbose
使ってみたらOrientationが3になってたから
全部「1」にする必要があります。
この「1」っていうのは、Top-Leftに対応してて
簡単にいうとまあ上向きってぐらいで良い気がする。
こんど詳しく書きます。
1 |
$ mogrify -auto-orient *.JPG |
このコードをぽこって叩いたらオッケーです。
これは現在使ってるシェルスクリプトで
Exiftool使うし、回転もさせるしリサイズもしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash for file in *.JPG; do mogrify -strip $file exiftool -Orientation=1 -n $file done for file in *.JPG; do filename=( `echo $file | tr -s '.' ' '` ) convert $file ajilogo.png -gravity southeast -geometry +20+20 -composite ${filename[0]}.${filename[1]} mogrify -rotate 90 $file convert -resize 600x800 $file $file done |
一応、Exif情報をいじった内容も説明していきたいけど
それは別の記事で書くとします。
じゃあね~