サンプルスクリプト/ロゴの追加(2)

概要

Layerフィルタを使って、ロゴ画像をクリップの上に重ねます。また、Maskフィルタでロゴ画像にマスクを適用し、(背景色などの)ロゴの不要な部分が表示されないようにします。

MaskフィルタはRGB32にのみ対応しているため、ソースクリップがRGB32でない場合は、ConvertToRGB32フィルタを使って変換するようになっています。

スクリプト

IsRGB32() ? last : ConvertToRGB32() # ソースクリップがRGB32では"ない"場合は、RGB32に変換
logo = ImageSource("ロゴ画像のパス") # ロゴ画像の読み込み
logo = ConvertToRGB32(logo) # logoをRGB32に変換。元々RGB32の場合は不要
mask_clip = ImageSource("マスク画像のパス") # マスク画像の読み込み
mask_clip = ConvertToRGB32(mask_clip) # mask_clipをRGB32に変換。元々RGB32の場合は不要
logo = Mask(logo, mask_clip) # マスク生成
Layer(last, logo, "add", x=数値, y=数値, level=255) # x,yはロゴの座標

使用方法

  1. スクリプト内の「ロゴ画像のパス」を追加したいロゴ画像のパスに変更します。
  2. スクリプト内の「マスク画像のパス」を適用したいマスク画像のパスに変更します。
  3. ロゴの位置を決定するために、xとyの値を入力します。よくわからない場合は、とりあえず0に設定して、あとでプレビューしながら調整するといいでしょう。
  4. levelの値を調節することで、ロゴを半透明化することができます(サンプルスクリプト/ロゴの追加(1)を参照)。

使用例

ロゴ/マスク画像

logo_purple.png

上の画像を、ソースクリップの上に追加します*1

mask_round.png

こちらをマスク画像として使用します。Maskフィルタによって、グレースケールに変換され、ロゴ画像のアルファチャンネル*2のために使われます。

このマスク画像は、ロゴ画像の紫色の部分が黒、それ以外の部分が白になるように作成しました。

スクリプト例

ColorBars(320,240) # ソースクリップ

#//--- ここからサンプルスクリプト ---//
IsRGB32() ? last : ConvertToRGB32() # ソースクリップがRGB32では"ない"場合は、RGB32に変換
logo = ImageSource("C:\My Pictures\logo_purple.bmp") # ロゴ画像の読み込み
logo = ConvertToRGB32(logo) # logoをRGB32に変換。元々RGB32の場合は不要
mask_clip = ImageSource("C:\My Pictures\mask_round.bmp") # マスク画像の読み込み
mask_clip = ConvertToRGB32(mask_clip) # mask_clipをRGB32に変換。元々RGB32の場合は不要
logo = Mask(logo, mask_clip) # マスク生成
Layer(last, logo, "add", x=265, y=185, level=255) # x,yはロゴの座標
#//--- ここまでサンプルスクリプト ---//

return last

ロゴ画像のパス、マスク画像のパスとx, yの値のみ変更しています。

プレビュー画面

logo03_01_mask.png

上記のスクリプトを実行したところ。

アルファチャンネルでは、黒[0,0,0]は完全に透明、白[255,255,255]は完全に不透明を意味します。

このため、マスク画像の黒にあたる部分は背景(ソースクリップ)が透けて見えている(ロゴ画像の紫色の部分は表示されていない)のに対し、マスク画像の白の部分は背景を透さずに、ロゴ画像がそのまま表示されています。

mask_gradation.png

試しに、こちらの画像を、マスクとして使用してみました。

logo03_03_gradation_mask.png

黒の濃さに応じて、段階的にロゴ画像の透明度が変化しているのがわかります。

今回、使用したフィルタ

関連ページ


*1 添付されている画像はPNGフォーマットですが、実際に使用したのはBMPフォーマットの画像です。
*2 参考: IT用語辞典 e-Words : アルファチャンネルとは 【alpha channel】 ─ 意味・解説

最終更新日時: 2014-03-11 (火) 03:51:17 (2819d)