Python_PIL_图片横向拼接

功能简介

本脚本用于将指定路径下的多张图片横向拼接成一张长图,并保存到指定的输出路径。用户可以选择输入图片文件和脚本文件是否在同一个文件夹,以及输出图片的保存路径。

工作流程

  1. 初始化:脚本首先初始化一个空的 Image 对象用于拼接图片。
  2. 加载图片:脚本加载所有指定路径下的图片,并获取它们的尺寸。
  3. 计算新图片尺寸:计算新图片的宽度(所有图片宽度之和)和高度(最大高度,保证图片不失真)。
  4. 创建新图片:创建一个新的空白图片,颜色为白色(RGB模式)。
  5. 拼接图片:遍历每张图片,将其粘贴到新图片上。
  6. 保存新图片:保存拼接后的新图片到指定的输出路径。

代码展示 

#横向拼接图片
from PIL import Image
def hengxiang_splicing(images_path,output_path):
    # 将指定路径下的图片横向拼接成一张长图并保存。
    # :param images._path:图片路径列表,图片将按照列表顺序拼接
    # :param output_path:输出长图的保存路径
    #初始化一个空的Image对象用于拼接图片
    widths,heights=[],[]
    images=[]
    #加载所有图片并获取它们的尺寸
    for img_path in images_path:
        img=Image.open(img_path)
        images.append(img)
        widths.append(img.width)
        heights.append(img.height)
    #计算新图片的宽度(所有图片宽度之和)和高度(最大高度,保证图片不失其)
    total_width = sum(widths)
    max_height = max(heights)
    #创建一个新的空白图片,颜色为白色(RGB模式)
    new_image = Image.new('RGB',(total_width,max_height),
    color='white')
    #遍历每张图片,粘贴到新图片上
    x_position =0
    for img in images:
        new_image.paste(img,(x_position,0))
        x_position +=img.width
    #保存新图片
    new_image.save(output_path)
    print(f"长图已保存至{output_path}")


    #输入条件(任选一个,默认条件1)
# 条件1:输入图片文件和py文件在同一个文件夹
images_paths=['屏幕截图(572).png','屏幕截图(575).png','屏幕截图(574).png']

# 条件2:输入图片文件和py文件不在同一个文件夹
# images_paths=[r'E:\Pycharm\pythonProject\PIL\屏幕截图(572).png',
#               r'E:\Pycharm\pythonProject\PIL\屏幕截图(573).png',
#               r'E:\Pycharm\pythonProject\PIL\屏幕截图(574).png']

    #输出结果(默认结果1)
# 结果1:自定义文件名并将新图片和py文件保存在同一个文件夹下
output_image_path ='02.png'

# 结果2:自定义文件名并将新图片保存在指定文件夹下
# output_image_path =r'E:\Pycharm\pythonProject\PIL\02.png'
#调用函数
hengxiang_splicing(images_paths,output_image_path)

库文件及函数

  • PIL库from PIL import Image,用于处理图片。
    • Image.open():打开指定路径的图片文件。
    • Image.new():创建一个新的空白图片。
    • Image.paste():将一张图片粘贴到另一张图片上。
    • Image.save():保存图片到指定路径。

函数功能 

  • hengxiang_splicing(images_path, output_path):横向拼接图片并保存。
  • images_path:图片路径列表,图片将按照列表顺序拼接。
  • output_path:输出长图的保存路径。

运行注意事项 

  1. 图片路径:确保输入的图片路径是正确的,并且图片文件存在。
  2. 输出路径:确保输出路径是可写的,并且输出文件名是唯一的,以避免覆盖已有文件。
  3. 图片格式:脚本默认处理的是RGB模式的图片,如果图片是其他格式(如RGBA),可能需要调整代码。
  4. 文件路径格式:在Windows系统中,路径分隔符使用反斜杠(\),而在Linux和macOS系统中,路径分隔符使用正斜杠(/)。如果脚本需要在不同操作系统上运行,建议使用原始字符串(在字符串前加r)或使用os.path.join()来构建路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值