from os import listdir
from PIL import Image# 获取当前文件夹下所以图片
ims = [Image.open('../images/%s' % fn) for fn in listdir('../images') if fn.endswith('.jpg')]ims_size = [list(im.size) for im in ims]
middle_width = sorted(ims_size, key=lambda im: im[0])[int(len(ims_size)/2)][0]  # 中位数宽度
ims = [im for im in ims if im.size[0] > middle_width/2]  # 过滤宽度过小的无效图片# 过滤后重新计算
ims_size = [list(im.size) for im in ims]
middle_width = sorted(ims_size, key=lambda im: im[0])[int(len(ims_size)/2)][0]  # 中位数宽度
ims = [im for im in ims if im.size[0] > middle_width/2]  # 过滤宽度过小的无效图片# 计算相对长图目标宽度尺寸
for i in range(len(ims_size)):rate = middle_width/ims_size[i][0]ims_size[i][0] = middle_widthims_size[i][1] = int(rate*ims_size[i][1])sum_height = sum([im[1] for im in ims_size])
# 创建空白长图
result = Image.new(ims[0].mode, (middle_width, sum_height))# 拼接
top = 0
for i, im in enumerate(ims):mew_im = im.resize(ims_size[i], Image.ANTIALIAS)  # 等比缩放result.paste(mew_im, box=(0, top))top += ims_size[i][1]
# 保存
result.save('result.png')

效果展示:

原图片:

拼接结果:缩放状态

Python 拼接多张尺寸大小不一样的图片制作长图相关推荐

  1. python画超长图-Python 拼接多张尺寸大小不一样的图片制作长图

    from os import listdir from PIL import Image # 获取当前文件夹下所以图片 ims = [Image.open('../images/%s' % fn) f ...

  2. python实现图片拼接长图_Python 拼接多张尺寸大小不一样的图片制作长图

    from os import listdir from PIL import Image # 获取当前文件夹下所以图片 ims = [Image.open('../images/%s' % fn) f ...

  3. python 识别图片链接尺寸大小

    识别图片链接尺寸大小 # 封面链接 url = "https://ci.xiaohongshu.com/5b8597c2-23ea-36ef-7340-c3ee59da9b3b?imageV ...

  4. python 修改图片尺寸_Python实现更改图片尺寸大小的方法(基于Pillow包)

    本文实例讲述了Python实现更改图片尺寸大小的方法.分享给大家供大家参考,具体如下: 1.PIL包推荐Pillow. 2.源码: #encoding=utf-8 #author: walker #d ...

  5. Python PIL.Image模块:图片变更尺寸大小(宽x高)

    现实需求:变更图片尺寸 要求:原图为建行一广告图片(来源于网络),缩小为800x600的小图片. >>> import os >>> from PIL import ...

  6. Python实现将多张图片拼接为一张

    文章目录 一.需求 二.代码 一.需求 将多个这样的图片进行拼接为一张 拼接效果: 更多照片张数同理 二.代码 import PIL.Image as Image import osIMAGES_PA ...

  7. python不改变图片尺寸压缩到指定大小

    python不改变图片尺寸压缩到指定大小 import base64 import io import os from PIL import Image from PIL import ImageFi ...

  8. 【Opencv】Python+openCV实现全景图拼接(左右两张图片拼接成一张全景图)

    Python+openCV实现全景图拼接(左右两张图片拼接成一张全景图) 全景图拼接 思路 具体步骤 代码与结果 代码 效果测试1 效果测试2 全景图拼接 思路 这个就是简单对左右两张图进行拼接,希望 ...

  9. python将两张图片拼接成一张图_python实现两张图片拼接为一张图片并保存

    本文实例为大家分享了python实现两张图片拼接为一张图片并保存的具体代码,供大家参考,具体内容如下 这里主要用Python扩展库pillow中Image对象的paste()方法把两张图片拼接起来 f ...

最新文章

  1. python list.pop 的方法的使用
  2. Python学习之字符串格式化
  3. 理解“动心忍性”的含义
  4. SpringBoot+Swagger2实现可视化API文档流程
  5. git 命令行使用(基础篇)
  6. 【学习笔记】抽象队列同步器AQS应用之BlockingQueue详解
  7. 安卓应用程序一般采用什么计算机语言开发,Kotlin 编程语言成为其 Android 应用程序开发人员的首选语言...
  8. 数据库系统概论第五版学习笔记
  9. Android STB 遥控器适配
  10. UVA-10246 - Asterix and Obelix(dijkstra)
  11. php设置excel列宽,excel列宽在哪里设置
  12. 用Python采集微博视频,随时随地发现新鲜事~
  13. 我的阿里巴巴图标公开库
  14. html设置图像路径,Html图像标签、绝对路径和相对路径:
  15. 免费下载思科CCNP 642-353考试题库
  16. java制表键_java-制表符的使用说明
  17. 构建之法之开篇之作——阅读与思考
  18. BUUCTF·[网鼎杯 2020 青龙组]boom·WP
  19. 从“任我行”博友转载的一篇文章:堆和栈的区别
  20. php验证码类(分享)

热门文章

  1. c语言实验--九九乘法表,C语言程序设计实验四 参考答案.doc
  2. Switch-case结构
  3. ROS系列教程三:roslaunch文件及参数服务器
  4. Panda3d如何获取到可用的模型?Maya、3D Max、OBJ等3D格式转换为egg、gltf文件
  5. PADS逻辑系列含义
  6. 基于6种监督学习(逻辑回归+决策树+随机森林+SVM+朴素贝叶斯+神经网络)的毒蘑菇分类
  7. 静态路由的配置,实现全网可达
  8. 关于html中img src= 的使用!!
  9. 载图工具snipaste
  10. 沟通的艺术III:看人之间 之人际关系