見出し画像

モックアップ画像を合成するpythonプログラム

デジタル画像販売などで、モックアップ画像を作成するのに苦労していませんか?
または、苦労するというほどでもないけど少しでも楽にしたくありませんか?


商品画像1枚または3枚固定ですが、pythonによる画像の合成プログラムを公開します。

便宜上A3/A4と書いていますが、処理の内容としてはそのようなサイズ限定や縦横限定はありません。

事前に用意するのはモックアップに配置する画像と、配置する位置を透過した画像だけです。

デジタル画像販売なら、実際に販売する画像や、拡大をしているなら拡大前の画像とモックアップのテンプレートです。


実例

実際の記事では以下に掲載しているすべてのモックアップ画像を作成するのに使用しています。

方針転換、これで決定!noteカバー画像とEtsyの連携、そして画質確保のツール作成|へろん
Etsyで2点目出品!初売上の感動と「寄り道」する決意|へろん
Geminiを限界までぶん回す!Etsyに3点目出品!|へろん

例えばこんなA3横向き画像と

A3商品画像

こんなモックアップ画像(額の中は透過してあります)

額内を透過(切り抜き)したモックアップ画像

これをプログラムで自動的に

合成後のモックアップ画像

このように合成することができます。

ただし、合成対象は1枚固定、3枚固定の2つのプログラムになっていますので、例えばそれを1つのプログラムにしたい場合や2枚の商品を合成する、というような場合にはAIなどを使って修正して頂く必要があります。


合成のロジック

1枚合成/3枚合成いずれも同じです。

  • プログラムがモックアップ画像の透明部分を検知

  • 合成対象画像を透明部分の幅に合わせ縮小/拡大(拡大すると画像が荒れますので、モックアップ画像に対して十分大きなサイズの画像を使用するのが望ましいです)

  • 透明部分の背景を白塗りしたところに、幅サイズを合わせた画像を中央配置(つまり、逆に言うと透明部分の高さが不十分の場合には上下ともはみ出す)


応用例

プログラミングをしない方だと以下の使い方など見てもわからないかも知れないので、事前に応用例です。
AIが簡単に作ってくれるはずです。

  • 決まった場所に決まったファイル名で商品画像とモックアップのテンプレートを置くと言うルールを決めておく

  • 合成したモックアップ画像を決まった名前にすると決めておく

  • 以下に記載するプログラムの説明をAIに渡す

  • それをダブルクリックすれば実行できるスクリプトを作成してもらう


以下の2つのプログラムが含まれます。


composite_into_alpha_slots.py(A4 3枠)

実行形:
python composite_into_alpha_slots.py <template_png> <left_image>
<center_image> <right_image> <output>

template_png
  PNGのみ(透過スロット検出のため)
  例: mockup_template_a4_3slots.png
left_image
  JPG または PNG
  例: crop_main_product.jpg
center_image
  JPG または PNG
  例: crop_wide_product.jpg
right_image
  JPG または PNG
  例: crop_interior_product.jpg
output
  PNG または JPG
  例: out/mockup_a4_product.png / out/mockup_a4_product.jpg


composite_into_alpha_slot_single.py(A3 単枠)

実行形:
python composite_into_alpha_slot_single.py <template_png>
<product_image> <output>

template_png
  PNGのみ
  例: mockup_template_a3_single.png
product_image
  JPG または PNG
  例: source_a3_landscape.png
output
  PNG または JPG
  例: out/mockup_a3_product.png / out/mockup_a3_product.jpg


使用方法


macOSの場合

初回のみ実行

  python -m venv .venv
  ./.venv/bin/python -m pip install numpy pillow

A4 x 3枚をモックアップに埋め込む

  ./.venv/bin/python composite_into_alpha_slots.py \
    ./mockup_template_a4_3slots.png \
    ./crop_main_product.jpg \
    ./crop_wide_product.jpg \
    ./crop_interior_product.jpg \
    ./out/mockup_a4_product.png

A3 x 1枚をモックアップに埋め込む

  ./.venv/bin/python composite_into_alpha_slot_single.py \
    ./mockup_template_a3_single.png \
    ./source_a3_landscape.png \
    ./out/mockup_a3_product.png

Windowsの場合

※ Windowsについては私の環境では試すことができないため、AI調べです。

PowerShell / cmd 共通 (初回のみ実行)

 python -m venv .venv
  .\.venv\Scripts\python.exe -m pip install numpy pillow

PowerShell

A4 x 3枚をモックアップに埋め込む

  .\.venv\Scripts\python.exe .\composite_into_alpha_slots.py `
    .\mockup_template_a4_3slots.png `
    .\crop_main_product.jpg `
    .\crop_wide_product.jpg `
    .\crop_interior_product.jpg `
    .\out\mockup_a4_product.png

A3 x 1枚をモックアップに埋め込む

  .\.venv\Scripts\python.exe .\composite_into_alpha_slot_single.py `
    .\mockup_template_a3_single.png `
    .\source_a3_landscape.png `
    .\out\mockup_a3_product.png

cmd.exe

A4 x 3枚をモックアップに埋め込む

  .\.venv\Scripts\python.exe .\composite_into_alpha_slots.py ^
    .\mockup_template_a4_3slots.png ^
    .\crop_main_product.jpg ^
    .\crop_wide_product.jpg ^
    .\crop_interior_product.jpg ^
    .\out\mockup_a4_product.png

A3 x 1枚をモックアップに埋め込む

  .\.venv\Scripts\python.exe .\composite_into_alpha_slot_single.py ^
    .\mockup_template_a3_single.png ^
    .\source_a3_landscape.png ^
    .\out\mockup_a3_product.png

有料エリアにはプログラムのzipファイルおよびコードのみ含まれます。


ここから先は

11,728字 / 1ファイル

¥ 500

Amazon Payで支払うと最大2%還元のチャンス! 9/30まで

この記事が気に入ったらチップで応援してみませんか?