Pythonで画像と画像を合成するサンプルプログラム

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

【5/27開催】事業変革を最新ソフトウェア技術で加速する「OSS利活用事例セミナー」
OSSのビジネス活用事例などを紹介します!登壇者はスカパー様やIPAなど🎤
OSSを活用した新たなビジネス創出やDX推進のヒントを得られる機会です。
https://ossforum.connpass.com/event/318583/
【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!
https://column.api-ecosystem.sios.jp/connect/kong/1081/

ども!今回はPythonのPillowというライブラリを用いて、画像にフレームを合成する方法について解説しています。自作のフレームと撮影した画像を合成することで、単に印刷するよりもちょっとだけぽく見える画像を作成することができます。年賀状で画像を変更しまくりたい時とかには重宝するかもしれません。

ご挨拶

ども!ブログリハビリ中の龍ちゃんです。5件も投稿すれば、リハビリは完了でしょう。徐々に執筆速度が戻ってきているように感じています。一番はアイデアの回路が戻ってくることなのですが、この辺はブログだけでなく読書とかもなのですけどね。

今回は、OSC広島に持って行った成果物の要素を抽出した内容になります。こちらのブログで書いていた通り、チームのメンバーが優秀だったのでPythonのソースはあまり触っていません。フレームの合成は担当していたので、画像周りに関係するブログになります。この辺のソースコードはネットにいっぱい落ちていますが、備忘録的にまとめていきたいと思います。(ちなみに自分のブログのコピペです)

今回対象とするシナリオは、「Pythonで指定の画像と用意したフレームを合成する」となります。使用するものとしては、PythonのライブラリであるPillowを使用しています。

ソースコード

まずは必要なものから揃えましょう。まずは、ライブラリのインストールです。

pip install pillow

そして、合成したいフレームを用意しましょう。部署単位で自由に使うことができるキャラクターがいるとうれしいことがいっぱいですね。ちなみに上のキノコとタケノコは同僚が書いてくれたものです。ぜひ参考にダウンロードして使ってみてください。

フレーム

以下がサンプルコードとなります。

from PIL import Image

def combine_images(base_image_path, overlay_image_path, output_path):
    # 画像を読み込む
    base_image = Image.open(base_image_path)
    overlay_image = Image.open(overlay_image_path)

    # 重ね合わせる画像のサイズを調整(必要に応じて)
    overlay_image = overlay_image.resize(base_image.size)

    # 画像を合成
    base_image.paste(overlay_image, (0, 0), overlay_image)

    # 結果を保存
    base_image.save(output_path)

# 関数を呼び出し、画像を合成
combine_images(
    "合成元のベース画像",
    "合成したいフレーム画像",
    "作成したソースの出力先パス",
)

# サンプルはこんな感じ
# combine_images("input.png", "frame.png", "output.png")

サンプルコードにはコメントをChatGPTで記入しています。

詰まった点について紹介しておきます。気を付けなければならない点もありますので、記載しておきます。

  • 入力の画像サイズとフレームの画像サイズが異なる場合は、リサイズを挟まないといけない
  • 処理速度のためには、入力サイズとフレームのサイズを一致させておくと楽

フレームを自作するとその辺は動的に変更できるのが素晴らしい点です。皆さんもFigmaで自作フレームを作ってみては?

終わりに

さて!今回はPythonを用いたちょこっとしたプログラムになります。画像をさくっといじくりまわせるのは、Pythonの素晴らしいところです。画像に対して画像を合成したり、文字を合成したりできると幅が広がります。

Pythonで文字を合成するプログラムについては、こちらで解説しています。

いや~最近ブログ投稿をサボっていたので、リハビリを重ねています。ちょこちょこ書いていくので、気が向いたら読んでみてください。ポエムを多めに投稿する予定なので、こちらもウォッチしてみてね。グッ!(  •̀ᴗ•́  )و ̑̑

アバター画像
About 龍:Ryu 107 Articles
2022年入社で主にフロントエンドの業務でTailwindと遊ぶ日々。お酒とうまいご飯が好きで、運動がちょっと嫌いなエンジニアです。しゃべれるエンジニアを目指しておしゃべりとブログ執筆に注力中(業務もね)//
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる