有一个需求
九张图片拼接在一起,图片类型有P类型(索引图)、灰度图、RGB、RGBA类型
九张图片
代码如下
import glob
from PIL import Image
def image_concat(image_names):
""" image_names: list, 存放的是图片的绝对路径 """
# 1.创建一块背景布
image = Image.open(image_names[0])
width, height = image.size
target_shape = (3*width, 3*height)
background = Image.new('RGBA', target_shape, (0,0,0,0,))
# 2.依次将图片放入背景中(注意图片尺寸规整、mode规整、放置位置)
for ind, image_name in enumerate(image_names):
img = Image.open(image_name)
img = img.resize((width, height)) # 尺寸规整
if img.mode != "RGBA": # mode规整
img = img.convert("RGBA")
row, col = ind//3, ind%3
location = (col*width, row*height) # 放置位置
background.paste(img, location)
background.save("./cartoon_common_test3.png")
img_dir = "./test/"
image_names = sorted(glob.glob(img_dir+"*"))
image_concat(image_names)
实现方法
1.读入所有图片名称
2.创建一块背景布
3.依次将图片放入背景中
注意:图片尺寸规整、mode规整、放置位置
效果展示