ロボット【Pepper(ペッパー)】PILで透過画像を合成

こんにちわ~♪

今日はPILライブラリのImageというモジュールを使って2枚の画像を合成してみたいと思います(*^ω^*)/

使用するのは背景にするjpg画像とjpgに重ねる透過PNGです。

サイズは720×720です。(中途半端ですみません・・・。)

といわけで早速画像を合成してみましょう!

 

def onInput_onStart(self):

import os,Image

framemanager = ALProxy("ALFrameManager")

path = os.path.join(framemanager.getBehaviorPath(self.behaviorId),"../html/img/")

writepath = path + "temp.png"

bg = path + "logo.jpg"

pepper = path + "pepper.png"

 

imgB = Image.open(bg)

imgP = Image.open(pepper)

 

self.logger.info(str(imgP))

self.logger.info(str(imgB))

 

imgB.paste(imgP, (0,0), imgP)

 

self.logger.info(str(imgB))

imgB.save(writepath)

 

self.onStopped()

 


以上で合成は完了です♪

このソースは、プロジェクト直下にhtmlフォルダを作成して、その中にimgフォルダを作りimgフォルダの中に画像を用意する前提で書いてます。

Image.open()で引数にしたpathの画像を読み込んでます。

以下の2枚ですね。

PIL合成素材(背景) PIL合成素材(Pepper)

imgB.paste(imgP, (0,0), imgP)で実際にimgBの画像にimgPを0,0の座標から合成してます。

今回の合成結果がこんな感じです。

合成結果

で、imgB.save(writepath)でimgBの画像をwritepathに格納してあるpathにtemp.pngとして書き出してます。

ざっくり説明するとこんな感じですね♪

というわけで、後はみなさんでご自由にどうぞっw(*^ω^*)/バイバイ

福岡でロボット開発といえば、株式会社システムトランジスタ(通称シストラ)ロボティクス部d^ω^bからのお知らせでした。

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください