画像処理

ImageMagick is needed to run bellows.
目次:
● デジカメ画像を長辺サイズを基準にリサイズして画像左下に黒文字でクレジットを入れたい。
● 写真画像を長編サイズを基準にリサイズして右下にIllustratorで作ったロゴマークを入れる
● CMYKなPDFファイルの表紙をRGBなJPEGに変換する。
● 画像にドロップシャドウ効果を適用し、すこし回転させる(写真風にする)


デジカメ画像を長辺サイズを基準にリサイズして画像左下に黒文字でクレジットを入れたい。

$ convert [input file] -strip -resize 800x800 -gravity SouthWest -font Helvetica  -fill black -pointsize 12 -annotate +5+5 "COPYRIGHT K.NAKAGAWA" [output file]

※0 例では長辺800pxにしてます。
※1 -fontに指定するフォント名もしくはフォントパスは convert -list fontで事前に確認する。
※2 入力がデジカメ画像(RAW形式など)を処理する場合、+repage -auto-orient オプションを入れた方がいいかも。RAWファイルを入力したら位置指定がおかしくなる。
※3 クレジットじゃなくて、でっかく中央に “Sample” みたいに打ちたい場合は、-gravity Center、-pointsize を調整する。 斜めに文字を入れたい場合は、-annotate 45 “Sample” みたいに角度を調整(例・下図右)

※ model: Renmu

テキストに縁取りしたい場合は、同じテキストを2度打ちするのがラクかも。

$ convert [input file] -strip -resize 800x800 -gravity SouthEast -font Helvetica -fill white -pointsize 16-stroke black -strokewidth 3 -annotate +5+5 "COPYRIGHT K.NAKAGAWA"  -stroke none -annotate +5+5 "COPYRIGHT K.NAKAGAWA" [output file]

※ 例では長辺800pxにしてます。

一括で処理する場合は、lsとかfindで・・・。

$ ls *.jpg | xargs -I{} covert {} -strip -resize 800x800 -gravity SouthEast -font [font name or font file path]  -fill white -pointsize 12 -annotate +5+5 "COPYRIGHT K.NAKAGAWA" ./small/{}

みたいな。


写真画像を長編サイズを基準にリサイズして右下にIllustratorで作ったロゴマークを入れる。

※追記 convertコマンドはPDF/AI/EPSなどGhostscriptライブラリを使用する形式はセキュリティー強化のためデフォルトでブロックされ、エラーが出ると思います。その場合は、policy.xml(ubuntu16だと /etc/ImageMagick-6/policy.xml 等) を編集する必要があります。詳しくは「ImageMagick policy.xml」でググれば情報が得られると思います。

※追記 Windows用のImageMagickを使う場合は、あらかじめ Windows用のGhostscriptが必要です。Windows10 21H1以降であれば コマンドコンソールから、”winget install ArtifexSoftware.GhostScript” を叩くといいでしょう。

通常の文字ではなく、Illustratorなどで作成したロゴマーク等(logo.pdf)を入れたい場合は -composite -compose を使って画像を重ね合わせていきます。

$ convert [input file] -strip -resize 800x800 \( -density 144 -resize 200x logo.pdf \) -gravity SouthEast -geometry +5+5 -compose over -composite [output file]

※ 例では長辺800pxにしてます。

テキストとの合わせ技も可能。

convert [input file] -strip -resize 800x800 \( -density 144  -resize 200x logo.pdf \) -gravity SouthEast -geometry +5+5 -compose over -composite -font Helvetica-Bold -fill "rgba(255,255,255,0.75)" -pointsize 50 -gravity Center -annotate 0 "Sample" [output file]

※ model: Nami Akiba

CMYKなPDFファイルの表紙をRGBなJPEGに変換する。

事前に JapanColor2011Coated.icc / sRGB_v4_ICC_preference_displayclass.icc のプロファイルを入手しておく。

$ convert -density 300 -profile JapanColor2011Coated.icc -colorspace cmyk CMFK-DATA-FILE.pdf[0] -profile sRGB_v4_ICC_preference_displayclass.icc -colorspace srgb -resize 1000x1000 SRGB-DATA-FILE.jpg

カラースペースを無視して convert しちゃうと、明るめの緑とか盛大に全く違う色になっちゃいます・・・。ウェブで印刷媒体のカタログを載せたいとかたまにあるけど、大抵印刷用の原稿データがそのまま送られてくることが多いです。。。非力なPCで仕事しているので、いちいち IllustratorやPhotoshop立ち上げて・・・しかも大抵100ページ超えなんてざらで・・・やってらんない。
しかも、サムネール作ってリンクして・・・とか・・・あ、グチですねm(__)m

画像にドロップシャドウ効果を適用し、すこし回転させる(写真風にする)

画像にドロップシャドウにして少し回転させたサムネール画像を作成するという定型業務があって、以前はわざわざPhotoshop(笑)を立ち上げ作ってましたが・・・んなことしなくてもシェルコマンド一発です(^^;

$ convert 入力画像.png -resize 200x \( +clone -background black -shadow 40x2+3+3 \) +swap -background white -layers merge +repage -rotate 時計回り回転角度  出力画像.jpg