当前位置: 首页 > news >正文

python如何把两张图片拼成一张

以下是使用Python的Pillow库(PIL)将两张高度相同的图片水平拼接的详细步骤:

from PIL import Imagedef concat_images_horizontally(img1_path, img2_path, output_path):# 打开两张图片img1 = Image.open(img1_path)img2 = Image.open(img2_path)# 验证图片高度是否相同if img1.height != img2.height:raise ValueError("图片高度不一致,无法拼接")# 创建新画布(宽度相加,高度不变)new_width = img1.width + img2.widthnew_height = img1.heightnew_img = Image.new('RGB', (new_width, new_height))# 拼接图片new_img.paste(img1, (0, 0))                # 左半部分new_img.paste(img2, (img1.width, 0))       # 右半部分# 保存结果new_img.save(output_path)print(f"拼接完成,结果已保存至 {output_path}")# 使用示例
concat_images_horizontally(img1_path = "left_image.jpg",img2_path = "right_image.jpg",output_path = "combined_image.jpg"
)

关键点说明

  1. 高度验证:自动检查两张图片高度是否一致
  2. 模式处理:自动将图片转换为RGB模式(支持处理PNG透明背景)
  3. 坐标计算:第二张图片的粘贴位置为第一张图片的宽度
  4. 异常处理:当高度不一致时会抛出明确错误

运行前准备

pip install Pillow

扩展建议

  • 如需垂直拼接,可修改为:
    new_height = img1.height + img2.height
    new_img.paste(img1, (0, 0))
    new_img.paste(img2, (0, img1.height))
    
  • 如需处理大量图片,建议使用os.path模块批量读取文件
  • 如需添加间距,可在粘贴时调整坐标值

注意事项

  1. 确保输入图片路径正确
  2. 输出格式由文件后缀自动判断(支持jpg/png等常见格式)
  3. 大尺寸图片拼接时注意内存消耗
  4. 如需保留透明度,可将模式改为’RGBA’
http://www.lryc.cn/news/586410.html

相关文章:

  • Gitee Push 失败 7 日谈:每天一个踩坑故事
  • Java中的方法传参机制
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘multiprocessing’问题
  • QT跨平台应用程序开发框架(6)—— 常用显示类控件
  • 使用FastAdmin框架开发
  • Java项目2——增强版飞机大战游戏
  • 【极客日常】后端任务动态注入执行策略的一种技术实现
  • R 语言绘制 10 种精美火山图:转录组差异基因可视化
  • 算法第三十一天:贪心算法part05(第八章)
  • CCF CSP第一轮认证一本通
  • 【理念●体系】模板规范篇:打造可标准化复用的 AI 项目骨架
  • 一分钟快速了解Apache
  • Redis集群会有写操作丢失吗?为什么?
  • 动态规划基本操作
  • 从LLM到VLM:视觉语言模型的核心技术与Python实现
  • FastAdmin项目开发三
  • (LeetCode 面试经典 150 题 )3. 无重复字符的最长子串 (哈希表+双指针)
  • 回归(多项式回归)
  • 算法练习6-大数乘法(高精度乘法)
  • Linux系统中部署Redis详解
  • (C++)STL:list认识与使用全解析
  • OpenEuler操作系统测试USB摄像头
  • The Black Heart
  • AOSP Settings模块问题初窥
  • day03-链表part1
  • C++类模版1
  • HTTP和HTTPS部分知识点
  • JAVA开发
  • 【数据结构初阶】--顺序表(三)
  • 广东省省考备考(第四十三天7.12)——数量(第四节课)