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_width

ims_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画超长图-Python 拼接多张尺寸大小不一样的图片制作长图相关推荐

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

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

  2. Python 拼接多张尺寸大小不一样的图片制作长图

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

  3. python画超长图-python 画长图

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 最近遇到个任务需要画一些坐标图,我就在想,用了这么长时间的 python 了,能不 ...

  4. python画超长图-利用Python画图,千变万化,各种画图技巧!

    如图所示,利用Python的turtle画了一个美国队长盾牌的标志: # 所需依赖:python3 sublime Python代码: # print 打印 print('hello world!') ...

  5. python画简单图片-Python绘制“高颜值”桑基图

    请看以下图片: 相信许多小伙伴第一眼就会被它美丽的外表所吸引,由此引发一连串的惊叹: "这个图叫什么???" "这个图真好看!!!怎么画啊?" 为了满足大家的好 ...

  6. python画三维平面-Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  7. python画三维立体图-Python 竟能绘制出如此酷炫的三维图

    原标题:Python 竟能绘制出如此酷炫的三维图 通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维 ...

  8. 用python画漂亮图片-Python 竟能绘制如此酷炫的三维图

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  9. python画曲线图例-Python数据可视化之Matplotlib(折线图)

    一.使用Matplotlib生成数据图:是Python上的一个2D绘图库,它可以在跨平台上边出很多高质量的图像. 1.Pycharm安装Matplotlib库 (1)点击菜单上的"file& ...

最新文章

  1. 使用CSS实现三栏自适应布局(两边宽度固定,中间自适应)
  2. 要嫁就嫁程序员!原因很简单:五成表示工资愿交给另一半!
  3. Concert Tour(Uvalive 6853)
  4. Containerd迎来1.0通用版本
  5. android 串口一直打开_实例 | 使用Python串口实时显示数据并绘图
  6. 谷歌浏览器出现“远程计算机访问失败问题”
  7. windows下安装和使用scrapy
  8. python网络编程之 一 socket(套接字)
  9. (转)SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解
  10. 大数据、物联网、区块链:融合趋势三重奏的好处
  11. 没钱发工资?当着董事长总经理是好玩的,不用负责?
  12. (转)OPEC神秘的“朋友圈”:全球最大原油对冲基金掌门人安杜兰
  13. 论文阅读:Deep forest/深度森林/gcForest
  14. m4s格式转换mp3_高质量音频转换器,如何转换成mp3音频格式
  15. 爬虫基础以及Xpath、Beautiful Soup的应用
  16. ROS Base path和Source space不一致问题,修改文件名后无法make问题,catkin_make报错问题
  17. mPass 微服务开发平台
  18. idea重置插件的使用
  19. Excel VBA合并不同工作簿所有工作表到一张工作表
  20. 熬夜的T哥们T姐们注意了

热门文章

  1. Linux进程地址空间探究
  2. open cv+C++错误及经验总结(十二)
  3. SQL SERVER-Extendevent检测TempDB增长
  4. 【Thinkphp5+Ueditor】Thinkphp5中用Ueditor无法获取内容的问题
  5. 视觉slam十四讲课后习题ch3--5题
  6. CMap的使用(转)
  7. 每天CookBook之Python-004
  8. QT解析嵌套JSON表达式
  9. session_cache_limiter(private,must-revalidate)是什么意思
  10. Bailian2941 Bailian3225 满足条件的整数【枚举+开方】