【Windows】ChatGPT画像の癜背景をPythonで透過PNGにする方法

ChatGPTを䜿っお2Dゲヌム甚にモンスタヌの画像等を生成しおいる人っお結構倚いんじゃないでしょうか。

しかし、残念な事にChatGPTでいくら「透過pngにしお」ず頌んでも䜕故か透過pngの画像を生成しおくれないこずがあるんですよね。

今回は、その際の察凊法に぀いおPythonを䜿っお玹介したいず思いたす。

スポンサヌリンク

【Windows】ChatGPT画像の癜背景をPythonで透過PNGにする方法

私自身、倧量に画像を生成させおいたわけですが䞀番肝心な透過pngの指瀺をしおいなかったために、生成した画像たちが党お癜背景付になっおしたいたした。

最初から、生成し盎すのは面倒だしちゃんず「透過pngでお願いね」ずいったずころで生成出来たり、出来なかったりするのでもはや生成した画像をたずめお透過pngにするのが䞀番だよねずいう考えに至りたした。

リモル

䟋ずしお䞊のような画像がありたす。䞀芋透過pngのように芋えるわけですが・・・

はい、こんな感じでUnityにむンポヌトしおシヌン䞊に持っおいくずこんな感じで、芋事に癜い背景も䞀緒にくっ぀いおくるわけです。

ずいうわけで、ここからが本題になりたすが実際にPythonを䜿っお透過pngにしおいきたしょう。

1. Pillowをむンストヌルする

たず、画像を扱うためにPillowずいうラむブラリを入れたす。

Pythonの「Pillowピロヌ」は、プログラミング蚀語Pythonでさたざたな画像凊理を簡単に行うための暙準的なラむブラリです。
私は、WindowsナヌザヌですのでWindowsを利甚しおいる人を前提に玹介しおいきたす。
たず、コマンドプロンプトを起動したす。
python –version
ず入力しお
Python 3.12.5
こんな感じで衚瀺されたらです。
もし、Pythonが䜿えないようならPythonが入っおいなかったり、蚭定が足りないかもしれないので、Pythonを公匏サむトからむンストヌラヌを入れるようにしおください。
python -m pip install pillow
続いお、こちらを実行したす。

フォルダを甚意する

䜜業甚フォルダを甚意したす。

䟋

white_to_transparent/
├─ images/

imagesの䞭に、透過したい画像を入れたす。

Pythonファむルを「white_to_transparent」フォルダの䞭に䜜りたす。ファむル名は「batch_transparent.py」にしたす。

※拡匵子がtxtになっおいないか気を぀けおください。

from PIL import Image
from pathlib import Path
import math

input_folder = Path("images")
output_folder = Path("output")
output_folder.mkdir(exist_ok=True)

image_extensions = [
    ".png", ".jpg", ".jpeg", ".webp",
    ".jfif", ".bmp", ".tif", ".tiff"
]

# 数字を倧きくするず、より広い範囲の癜っぜい色を透明にしたす
white_tolerance = 60

for input_path in input_folder.rglob("*"):

    if input_path.is_dir():
        continue

    if input_path.suffix.lower() not in image_extensions:
        print(f"スキップ: {input_path.name}")
        continue

    print(f"\n凊理䞭: {input_path}")

    img = Image.open(input_path).convert("RGBA")
    pixels = img.load()

    width, height = img.size
    transparent_pixels = 0

    for y in range(height):
        for x in range(width):
            r, g, b, a = pixels[x, y]

            # 癜 RGB(255,255,255) からどれくらい離れおいるか
            distance = math.sqrt(
                (255 - r) ** 2 +
                (255 - g) ** 2 +
                (255 - b) ** 2
            )

            if distance < white_tolerance:
                pixels[x, y] = (255, 255, 255, 0)
                transparent_pixels += 1

    output_path = output_folder / f"{input_path.stem}_transparent.png"
    img.save(output_path)

    print(f"保存したした: {output_path}")
    print(f"透明にしたピクセル数: {transparent_pixels}")

    if transparent_pixels == 0:
        print("泚意: 透明化されたピクセルが0です。white_toleranceを䞊げおください。")

print("\nすべお完了したした。")

耇数画像をたずめお透過pngにするコヌドは䞊の通りにしたす。

white_to_transparent/
├─ batch_transparent.py
├─ images/
│ ├─ logo1.png
│ ├─ logo2.jpg
│ ├─ icon.jpeg

するず、フォルダ構成がこんな感じになるかず思いたす。

埌は、コマンドプロンプトでwhite_to_transparentに移動しお

python batch_transparent.py
を入力しおください。
透過pngに倉換する
するず、こんな感じで透過pngに凊理するこずが出来たす。
著者プロフィヌル
うんくん

IT系に特化した蚘事がメむンです。Unity倚め。
Udemy講垫もやっおいたす。よろしくお願いしたす。

※Amazonのア゜シ゚むトずしお、圓メディアは適栌販売により収入を埗おいたす。

うんくんをフォロヌする
Python
スポンサヌリンク
シェアする
うんくんをフォロヌする