2010/10/19

半透明で画像を合成

NILScriptのImageユニットが提供する画像処理機能では、不透明度情報(アルファチャンネル)の取り扱いが可能です。
この機能を利用すれば、写真などの上に半透明のロゴを合成するウォーターマークのような処理も簡単に実現できます。

新たに図形やテキストを描画する場合は、半透明の描画色で描画するという手もありますが、既存の画像を半透明にして貼り付けたい場合は、下記のようにして「updateAlpha()」メソッドでピクセルの透明度を一括変更してからdrawImage()で貼り付けるといいでしょう。(ファイル名などは適宜変更してください)
var Image=require('Image').Image;
var img=Image.load('input.jpg');

var img2=Image.load("logo.png");
img2.updateAlpha(127);
img.drawImage(img2,img.width-img2.width-16,16);

img.save('output.jpg',{quality:90});
updateAlpha()は、0~255の値で画像の不透明度を指定します。
これにより、下記の例のように元の画像(波模様)の上に半透明で別の画像を合成できます。

0 件のコメント:

コメントを投稿