Tumblr Facebook ВКонтакте linkedin Hatena Tweet LINE 카카오톡 Reddit Pocket Google+ 微博 Pinterest Email

画像を一括縮小してウォーターマークを入れる#雑用#プログラミング初歩

cd /home/Me/CONVERTTHESE;ls *JPG|while read line;do convert $line -resize 1200x1200 -quality 70 $line.s.jpg;composite -compose multiply -gravity SouthWest -geometry +1+1 watermark.png $line.s.jpg $line.w.jpg;done

このスクリプトで一括処理した例

gimpなどで背景透明にしたwatermark.pngを製作の上で。

layerで、alpha to selectionからαチャンネルを選択し、select>border から輪郭を付けて、新しく用意した背景透明のレイヤー上で Fill with BG/FG color を選択して塗りつぶす。

透過度はimagemagickのconvert段階ではなく、このGimpの段階でレイヤーのOpacityとして調整しておく必要。したがって予め何通りか量産しておく。

-resize 1200x1200 の指定は正方形にトリムされることはなく、縦横いずれか長い辺が1200に収まるように縮小される。

.jpg.jpgなどの拡張子重複を避ける場合は以下のワンライナー

カレントディレクトリ内の拡張子がjpgのファイルすべてについて変換される。

mkdir -p はディレクトリ既存の場合のエラーを回避し親ディレクトリも自動で掘る。

mkdir -p s;ls *.jpg|while read l;do convert $l -resize 360x360 -quality 40 s/$l;done

同一ディレクトリに別名保存の場合

ls *.jpg|while read l;do n=$(basename $l|awk -F. '{print $1}');convert $l -resize 360x360 -quality 40 $n.sp.jpg;done

ただ、同一名だと何かの拍子に上書きで原本消失の危険があるから、その点は注意。

追記: -auto-orient を入れて向きを変えるべき。最近はソフトが優秀で向きを変えて表示してくれるが、html内の画像までブラウザ側で回転はしてくれない。(2018年現在)

webpに一括変換する場合

mkdir -p webp;ls *.jpg|while read l;do n=$(basename $l|awk -F. '{print $1}');cwebp -q 30 $l -o webp/$n.webp;done

webpはopusに似て、超低画質域にjpgより利があるというか、画質が低下しても輪郭が残る感じがある。どんどん油絵のように潰れていくけれど、日時の文字とかが最後まで潰れない。

jpgのフィルムのグレインのようなつぶつぶ感ノイズ感と、webpの油絵化。好みの問題のような印象。

最適化、ということについて

モニターは4kもだいぶ普及しているので、拡大でも1200pixelで十分だろう、という訳にも行かなくなってきている。高解像度があるならば高解像度で上げておくほうがいい。

さらに十年後、20年後どうかというのは予想がつかない。

結局有限の時間の中で繋がり栄えるために皆もがいているのだなと。

2018-11-30

//
::
//
::

2024 B-AE.com All rights reserved.

support @ b-ae.com

Flag Counter