之前写QQ机器人时一直想实现一个抽卡功能,其中的十连需要将10张图片以两行五列的方式拼接成一张大图。话不多说,直接上代码和结果。
import os
from PIL import Image
from random import sample, choices
COL = 5 #指定拼接图片的列数
ROW = 2 #指定拼接图片的行数
UNIT_HEIGHT_SIZE = 900 #图片高度
UNIT_WIDTH_SIZE = 600 #图片宽度
PATH = "" #需要拼接的图片所在的路径
NAME = "" #拼接出的图片保存的名字
RANDOM_SELECT = False #设置是否可重复抽取图片
SAVE_QUALITY = 50 #保存的图片的质量 可选0-100
#进行图片的复制拼接
def concat_images(image_names, name, path):
image_files = []
for index in range(COL*ROW):
image_files.append(Image.open(path + image_names[index])) #读取所有用于拼接的图片
target = Image.new('RGB', (UNIT_WIDTH_SIZE * COL, UNIT_HEIGHT_SIZE * ROW)) #创建成品图的画布
#第一个参数RGB表示创建RGB彩色图,第二个参数传入元组指定图片大小,第三个参数可指定颜色,默认为黑色
for row in range(ROW):
for