将多张小图片合并成一张大图片 Python3
Posted K同学啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将多张小图片合并成一张大图片 Python3相关的知识,希望对你有一定的参考价值。
- 🔗 运行环境:python3
- 🚩 作者:K同学啊
- 🥇 极品专栏:《深度学习100例》
- 🔥 精选专栏:《新手入门深度学习》
- 📚 推荐专栏:《Matplotlib教程》
- 🧿 优秀专栏:《Python入门100题》
代码实现
import PIL.Image as Image
import os
IMAGES_PATH = "./out/" # 图片集地址
IMAGES_FORMAT = ['.jpg', '.JPG'] # 图片格式
IMAGE_SIZE = 120 # 每张小图片的大小
IMAGE_ROW = 6 # 图片间隔,也就是合并成一张图后,一共有几行
IMAGE_COLUMN = 11 # 图片间隔,也就是合并成一张图后,一共有几列
IMAGE_SAVE_PATH = "./out2/1test.png" # 图片转换后的地址
# 获取图片集地址下的所有图片名称
image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if
os.path.splitext(name)[1] == item]
# 简单的对于参数的设定和实际图片集的大小进行数量判断
if len(image_names) != IMAGE_ROW * IMAGE_COLUMN:
raise ValueError("合成图片的参数和要求的数量不能匹配!")
# 定义图像拼接函数
def image_compose():
to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE)) #创建一个新图
# 循环遍历,把每张图片按顺序粘贴到对应位置上
for y in range(1, IMAGE_ROW + 1):
for x in range(1, IMAGE_COLUMN + 1):
print(IMAGES_PATH + str(y) + '_' + str(x) + '.jpg')
from_image = Image.open(IMAGES_PATH + str(y) + '_' + str(x) + '.jpg')
to_image.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE))
return to_image.save(IMAGE_SAVE_PATH) # 保存新图
image_compose() #调用函数
合并前的图片:
合并后的图片
以上是关于将多张小图片合并成一张大图片 Python3的主要内容,如果未能解决你的问题,请参考以下文章