5

読み込まれた画像のすべての白いピクセル (255,255,255) を取得し、アルファ チャネルを 0 (非不透明) に設定してから画像を保存する画像処理プログラムを作成しようとしています。

これを実現するために Python の pygame 拡張機能を使用してきましたが、これまでのところ、上記で説明したことを行う簡単な方法を見つけることができません。

画像を表示しようとしているのではなく、画像を操作しようとしていることに注意してください。

4

1 に答える 1

2

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.pngconverted.pngが白ではなくマゼンタを使用してどのように表示されるかを次に示します。

マゼンタbg 透明なbg

代わりにImageMagickユーティリティを使用すると、コマンドラインでこれを実行するのと同じくらい簡単です。

convert original.png -transparent white converted.png
于 2012-12-30T03:41:50.643 に答える