読み込まれた画像のすべての白いピクセル (255,255,255) を取得し、アルファ チャネルを 0 (非不透明) に設定してから画像を保存する画像処理プログラムを作成しようとしています。
これを実現するために Python の pygame 拡張機能を使用してきましたが、これまでのところ、上記で説明したことを行う簡単な方法を見つけることができません。
画像を表示しようとしているのではなく、画像を操作しようとしていることに注意してください。
読み込まれた画像のすべての白いピクセル (255,255,255) を取得し、アルファ チャネルを 0 (非不透明) に設定してから画像を保存する画像処理プログラムを作成しようとしています。
これを実現するために Python の pygame 拡張機能を使用してきましたが、これまでのところ、上記で説明したことを行う簡単な方法を見つけることができません。
画像を表示しようとしているのではなく、画像を操作しようとしていることに注意してください。
PILまたはImageMagickを使用することもお勧めしますが、pygameでそれを行う方法は次のとおりです。
import pygame
def convert():
pygame.init()
pygame.display.set_mode()
image = pygame.image.load("triangle.png").convert_alpha()
for x in range(image.get_width()):
for y in range(image.get_height()):
if image.get_at((x, y)) == (255, 255, 255, 255):
image.set_at((x, y), (255, 255, 255, 0))
pygame.image.save(image, "converted.png")
if __name__ == "__main__":
convert()
上記は白い背景で機能します。違いがわかるように、triangle.pngとconverted.pngが白ではなくマゼンタを使用してどのように表示されるかを次に示します。
代わりにImageMagickユーティリティを使用すると、コマンドラインでこれを実行するのと同じくらい簡単です。
convert original.png -transparent white converted.png