本文实例为大家分享了python实现多张图片垂直合并的具体代码,供大家参考,具体内容如下

# coding: utf-8

# image_merge.py

# 图片垂直合并

# http://www.redicecn.com

# redice@163.com

import os

import Image

def image_resize(img, size=(1500, 1100)):

"""调整图片大小

"""

try:

if img.mode not in ('L', 'RGB'):

img = img.convert('RGB')

img = img.resize(size)

except Exception, e:

pass

return img

def image_merge(images, output_dir='output', output_name='merge.jpg', \

restriction_max_width=None, restriction_max_height=None):

"""垂直合并多张图片

images - 要合并的图片路径列表

ouput_dir - 输出路径

output_name - 输出文件名

restriction_max_width - 限制合并后的图片最大宽度,如果超过将等比缩小

restriction_max_height - 限制合并后的图片最大高度,如果超过将等比缩小

"""

max_width = 0

total_height = 0

# 计算合成后图片的宽度(以最宽的为准)和高度

for img_path in images:

if os.path.exists(img_path):

img = Image.open(img_path)

width, height = img.size

if width > max_width:

max_width = width

total_height += height

# 产生一张空白图

new_img = Image.new('RGB', (max_width, total_height), 255)

# 合并

x = y = 0

for img_path in images:

if os.path.exists(img_path):

img = Image.open(img_path)

width, height = img.size

new_img.paste(img, (x, y))

y += height

if restriction_max_width and max_width >= restriction_max_width:

# 如果宽带超过限制

# 等比例缩小

ratio = restriction_max_height / float(max_width)

max_width = restriction_max_width

total_height = int(total_height * ratio)

new_img = image_resize(new_img, size=(max_width, total_height))

if restriction_max_height and total_height >= restriction_max_height:

# 如果高度超过限制

# 等比例缩小

ratio = restriction_max_height / float(total_height)

max_width = int(max_width * ratio)

total_height = restriction_max_height

new_img = image_resize(new_img, size=(max_width, total_height))

if not os.path.exists(output_dir):

os.makedirs(output_dir)

save_path = '%s/%s' % (output_dir, output_name)

new_img.save(save_path)

return save_path

if __name__ == '__main__':

image_merge(images=['900-000-000-0501a_b.jpg', '900-000-000-0501b_b.JPG', '1216005237382a_b.jpg'])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。

python多图合并成一张图_python使用PIL实现多张图片垂直合并相关推荐

  1. python多图合并成一张图_将现有的图形合并成一个图形PYTHON的pdf格式

    我找不到对我有用的解决办法.在 我有一些已经存在的数字,我创建了早些时候,想把他们合并到一个pdf横向页面.图形文件是标准的matplotlib savefig的as.png.在 那么,我怎样才能简单 ...

  2. vue 签署文件两张图合并成一张图 h5页面转换成图片并长按保存在本地

    在做让用户在页面签名并把当前页面保存为图片,附上完整代码 (直接复制代码,更改接口地址或删除接口逻辑可直接复用) **准备工作:安装   npm install vue-esign --save 全局 ...

  3. unity编辑器拓展十一——将两张RGB图合并成一张

    游戏角色shader,包含的东西比较多,还要做到动态合并,程序那边希望贴图经可能少,而我们美术用了两张图,一张图的RGB是高光.流光.自发光,另外一张图的RGB是不同区域的偏色,其实每个通道的一整张贴 ...

  4. chatgpt赋能python:Python将两张图片拼接成一张图:让您的图片处理更高效!

    Python将两张图片拼接成一张图:让您的图片处理更高效! 作为一个有着10年Python编程经验的工程师,我发现Python成为了许多项目的主要语言,其中涵盖了很多关于图像处理的应用程序.在本文中, ...

  5. MATLAB代码: 合并两张图

    MATLAB 合并两张图,要求大小相同的图,我这里合并两张相同的图. image = imread('docia_one.png') %读取图片 c = [image, image] %图像拼接到矩阵 ...

  6. 一张图学会python-一张图让你学会Python

    Python是一个非常适合初学者入门的编程语言.相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易.自带的各种模块加上丰富的第三方模块,免去了很多"重复造轮子"的工作,可 ...

  7. 如何将多张图片拼成一张图?

    如何将多张图片拼成一张图?作为一名幼儿园老师,为满足家长内心需要,我们每天都会给宝贝们拍多张不同的照片然后传给家长.但是一张一张的传,不仅耗费时间而且很慢,所以我通常都是把多张照片拼接在一起,然后传给 ...

  8. Matlab多张二维图堆叠成一张三维图

    我想让500张1024*500的二维图堆叠成一张1024*500*500的三维图. 在网上找了好几天,不是运行不了,就是跟我想要的结果不一样. 所以我就自己编写了一个matlab代码 %% 二维图堆叠 ...

  9. 多张照片如何合并成一张?3招快速合并

    多张照片如何合并成一张?为了能够在个人主页上展示更多的照片,我们可以将多张照片合并成一张.这样一来,我们就能一次发送更多的照片,并在展示时展现更多内容.尤其是当我们外出旅行时,经常会拍摄大量的照片.然 ...

最新文章

  1. 怎么把项目推到gitlab上_将本地项目添加到 GitLab 上管理
  2. 研究Android音视频-3-在Android设备上采集音视频并使用MediaCodec编码为H.264
  3. Redis数据库入门基础,及优缺点介绍
  4. Linux-pidstat Monitor and Find Statistics for Linux Procesess
  5. matlab全域基函数,多项式函数插值:全域多项式插值(一)单项式基插值、拉格朗日插值、牛顿插值 [MATLAB]...
  6. 关于计算机网络的未来综述,计算机网络综述
  7. 【OS学习笔记】二十四 保护模式七:调用门与依从的代码段----特权级保护
  8. B cannot be cast to java.sql.Blob
  9. 工业机器人用铸铁牌号_蠕墨铸铁生产工艺
  10. oracle使用with as提高查询效率
  11. 二分搜索,欧几里德算法
  12. docker(4):docker的安装(centos7)和加速
  13. Tensorflow基本语法和实现神经网络
  14. 背包九讲----整理+例题
  15. 4010. Problem E:11的倍数
  16. NeRF 源码分析解读(二)
  17. python黑魔法指南_python黑魔法
  18. NLP-准确率、精确率、召回率和F1值
  19. 3rd TMA大数据营销案例征集赛正式启动,报名ing!
  20. HTML+CSS制作人物介绍卡片效果

热门文章

  1. 【数据结构与算法】浅谈队列的应用
  2. [SpecialJudge]构造“神秘“字符串(洛谷P3742题题解,Java语言描述)
  3. Scrapy 爬虫框架初体验二 —— 以一个新闻站点爬取为例
  4. Nginx 配置 SSL 及 HTTPS 协议通信过程
  5. MIT研究生解说数学体系
  6. 为什么那么多人转型做大数据
  7. SPARK全栈 全流程 大数据实战 之 技术选型篇
  8. 【python】time,datetime,string相互转换
  9. Linux 阵列卡驱动安装
  10. CISCO ASA 5510 防火墙的配置实例