画像に別の画像を貼り付けるには

◆PROCESSING 逆引きリファレンス

 カテゴリー:イメージ処理

画像に別の画像を貼り付けるには

【解説】
画像の一部に、別の画像を貼り付けるには、どうすれば良いでしょうか?。

PROCESSINGで画像を扱うPImageオブジェクトには、画像の一部を加工する便利なメソッド(命令)があります。
PImage.set()で、簡単に画像の一部を置き換えることが可能です。

【構文】
pimg.set(x, y, c)
pimg.set(x, y, img)

【パラメータ】
x : int : 画像を設定する左上X(横)座標
y : int : 画像を設定する左上Y(縦)座標
c : int : color値
img : PImage : 貼り付ける画像データ

【戻り値】
void

【注意】
pimg.set(x, y, c); で、指定した位置にある画素(pixel)を、指定したRGB色(color)の点に置き換える事が可能です。cはcolor値です。デフォルトはRGB色ですが、colorMode(HSB)とすればHSBで指定する事も可能です。

ただし正規リファレンスにある通り、動作速度が遅い事に注意が必要です。
例えばシューティングゲームなどで、1pixel単位に点を描画したい場合などでは、setメソッドではなくpixels[]プロパティを書き換える事が推奨されています。

pimg.set(x, y, img); で、指定した位置に img画像を貼り付ける事も可能です。
1pixelの画素を置き換えるよりも、こちらの方が利用するケースが多いかもしれませんね。

なおimageMode()の指定によらず、XとYは画像の左上隅座標として解釈されます。

【関連記事】
なし


●ある画素を置き換える例:

本例では、予めスケッチフォルダ(PROCESSINGのソース格納場所)にdataというフォルダを作成し、そこに white.pngという名前で、真っ白な画像を用意してある事が前提です。

真ん中から横一線に4ドット間隔で赤い点を打っています。
点を打つだけなら point()命令を使う方が簡単ですが、この例では あえてset()命令で画素を置き換えています。

<出力結果例>
set_pixl
●画像の一部を別の場所に貼り付ける例:

本例では、予めスケッチフォルダ(PROCESSINGのソース格納場所)にdataというフォルダを作成し、そこに 1748606i.jpg という名前の画像を用意してある事が前提です。

女の子の顔部分(座標(140, 30)から縦横182ピクセル分)を、絵の右下(座標(258, 312))に貼り付けています。出力結果例の下側の絵で、青枠で囲った部分を赤枠の場所に貼り付けているわけですね。

結果として貼り付け先(赤枠部分)は、青枠の画像に置き換わってしまいます。
本例では同一画像内で切り貼りしていますが、img2を別画像にしても可能です。

<出力結果例:画像URL:ニコニコ静画 ゆうちょ さん>
set_pixl2set_pixl3

 


PROCESSING逆引きリファレンス一覧 へ戻る

本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)