end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

pillow for pythonで、特定の色を、他の色へ変換

#!python
# -*- coding: utf-8 -*-
import sys
import PIL.Image

def main():
    org_img_file_path = sys.argv[1]

    img = PIL.Image.open(org_img_file_path)
    pixels = img.load()
    w, h   = img.size

    conv_colors = {
        (  0,  0,  0,255):(255,255,255,255),#黒   背景
        (255,255,255,255):( 50, 50, 50,255),#白   壁
        (255, 60,128,255):(150,150,150,255),#赤   開口
        (192,192,224,255):(245,245,245,255),#灰色 クローゼット
        (255,224,128,255):(245,245,245,255),#黄色 寝室
        (192,255,255,255):(245,245,245,255),#水色 浴室
        (255,160, 96,255):(245,245,245,255),#オレンジ 廊下
        (224,255,192,255):(245,245,245,255),#緑   LDK
    }
    
    for x in range(w):
        for y in range(h):
            #print( pixels[x, y] )
            if pixels[x, y] in conv_colors.keys():
                pixels[x, y] = conv_colors[ pixels[x, y] ]
    img.save("new_image.bmp")
    
if __name__ == '__main__':
    main()

上記を実行すると、先程のentryにあるカラフルな間取り図を以下のように グレースケール?化できます。