画像にロゴ/文字を半透明で貼り付ける方法。
2018/04/07
画像にロゴマークや会社名などの画像を半透明で貼り付ける方法です。
ImageMagick
今回の画像加工にはフリーの画像処理ソフト「ImageMagick」を使います。
今回使うのはImageMagickのうち、「composite.exe」です。ImageMagickの公式サイトのバイナリ配布ページからportable版のzipファイルをダウンロードして解凍すると、各種exeファイルが含まれています。今回使うcomposite.exe以外とは依存関係がありませんので、削除してしまっても構いません。identify.exeだけは後ほど少し登場します。
ロゴマークの画像を用意する
まずはロゴマークの画像を用意しましょう。以下に注意すると良いと思います。
- 変換対象の画像よりある程度大きめのロゴ画像にする。
- 背景が透過されていること。JPEGは透過データを含められないので、PNGなどにしてください。
合成の準備
composite.exeは画像同士の合成を行うソフトです。「画像にロゴを貼りつける」というよりも、「画像とロゴを合成する」という処理なわけですね。
画像サイズを調べる
まずは対象となる画像ファイルをサイズを調べます。Windowsのプロパティから見ることもできますが、せっかくなのでImageMagickを使ってサイズを表示させましょう。画像ファイルと同じフォルダにidentify.exeを置いて、そのフォルダでコマンドプロンプトを開きます。(エクスプローラーのファイルメニューから開けます)
identify test.jpg
と入れてEnterを押すと、
test.jpg JPEG 600x450 600x450+0+0 8-bit sRGB 47.5KB 0.000u 0:00.000
のように画像ファイルのデータが出力されます。
今回は単にサイズだけが知りたいので、以下のようにして出力をシンプルにします。
identify -format "%wx%h" test.jpg
すると、-formatに従って「%w」には画像の幅が、「%h」には画像の高さが代入されます。なので出力は
600x450
となります。
ロゴのサイズ,位置,余白を決める
画像サイズを調べたのは、ロゴのサイズを決めるためです。
例えば先ほどの 600x450 の画像で、ロゴの幅を3分の1くらいにしたければ、ロゴのサイズはおよそ200ピクセルにするということです。
幅基準で決める場合、縦長の画像ではやや大きめにしないと相対的にロゴが小さく見えてしまうので注意してください。
位置は中央なのか、上下左右どちらかに寄せるのか、4方どれかの角にするのかということです。
余白は、中央以外にロゴを貼る場合に画像の端からどれだけ離すかということです。ザックリ5%くらいがおすすめです。
ロゴを合成する
コマンドを実行してロゴを合成しましょう。
composite -dissolve 40% -gravity southeast -geometry 300x+30+30 logo.png test.jpg test_with_logo.jpg
すると、
この画像にロゴが入って
こんな風になります。
コマンド解説
コマンドの内容を見てみましょう。
composite -dissolve 40% -gravity southeast -geometry 300x+30+30 logo.png test.jpg test_with_logo.jpg
まず、「-dissolve 40%」の部分は、ロゴの透明度を表します。100%が不透明、0%が透明です。
次に「-gravity」が場所を示します。画像を地図に見立てて、「north」や「southwest」などの方角で8方向を示しています。今回はsoutheast(南東)なので右下ですね。
「-geometry」は合成サイズを示しています。「WxH」の形式でロゴのサイズを示し、「+w+h」で-gravityで示した画像端からの距離を示します。幅と高さの一方しか指定しない場合は、縦横比を維持して拡大・縮小されます。
最後に、[ロゴ画像][元画像][完成画像]の順にファイル名を指定します。
まとめ
画像ファイルにロゴを入れる方法を紹介しました。
画像サイズを調べたりロゴサイズを決めたりと結構面倒な作業なので、自動化したいところですね。すでにプログラムは書いてあるので、そちらもいずれ紹介しますね。