PythonはRGBとRGBA画像を処理し、透明な画像部分の貼り付けがあり、paste->maskパラメータ
1333 ワード
from PIL import Image
import numpy as np
def trans(img):
# *********** Begin **********#
#
# : r、g、b、 230 , , 。 。
img = img.convert('RGBA')
x, y = img.size
for i in range(x):
for j in range(y):
color = img.getpixel((i, j))
Mean = np.mean(list(color[:-1]))
if Mean > 230:
color = color[:-1] + (0, )
else:
color = (0, 0, 0, 255)
img.putpixel((i, j), color)
return img
# *********** End **********#
def img_replace(path):
# *********** Begin **********#
img = Image.open(path)
# img 。
# 0, 0, 823, 633
# 1134, 0, 1555, 331
# 1543, 211, 1650, 428
# img.crop
background = img.crop((0, 0, 823, 633))
img1 = img.crop((1134, 0, 1555, 331))
img2 = img.crop((1543, 211, 1650, 428))
img1 = trans(img1)
img2 = trans(img2)
#
# 400,0
# 4,95
background.paste(img1, (400, 0), mask=img1.split()[3])
background.paste(img2, (4, 95), mask=img2.split()[3])
# './Image_body_cold/ /d.jpg'
background.save("./images/d.jpg")
# *********** End **********#
return True