python 多张图片进行横向与纵向的无损拼接,适用于图片宽高差不多的图片
前言
python 进行多张图片横向和纵向的拼接,适用于图片宽高差不多的图片,因为横向拼接会将图片等比例放大到一样的高度在拼接,纵向拼接会将图片等比例放大到一样的宽度再拼接。如果图片分辨率相差太大,将导致长图中每一张原始图片的内容的大小发生改变。
起因
我习惯是某次作业只有一张图,所以要将某次作业的n张照片合并成一张长图。而用的小程序拼接工具拉胯了。
思路
- 首先我的需求是纵向拼接,但是纵向都做了,横向不做有点奇怪,于是打算能进行横向和纵向的拼接
- 直接获取路径里所有图片,包括png、jpg和jepg(有其他格式的可自行补充),sort决定升序降序或者默认读取顺序,然后用pillow库的image读取图片,加进列表
- 进行拼接之前,先获取原始图片中最大的宽和最大的高,据此对所有图片进行等比例放大
- 由于最大的宽和最大的高,不一定在同一个图片出现。所以原始图片经过放大后,宽高发生变化,从而最大宽高也可能发生变化。为简便,长图的最大宽/高直接取了所有可能的宽高的最大值,会导致长图的最后将有空白画布(后面去除),但是至少不会出现画布长度/宽度不够
- 进行拼接。横向长图的高度就是最大高度,然后宽度是最大宽度n(n张图片);纵向长图的宽度是最大宽度,高度是最大高度n;
- 如第五点所说,最后去除空白画布,保存无损长图,完成
效果:
(一时找不到合适的图,翻出了自己拍的作文,图片宽高接近,但不一样)
代码
放在Github
记得改成自己的文件夹,还有合成的长图文件就在原始图片所在文件夹中,如果不喜欢可以换一个文件夹
python 多张图片进行横向与纵向的无损拼接,适用于图片宽高差不多的图片相关推荐
- 不固定图片宽高瀑布流_图片横向等高瀑布流,每行占满,限制行数 的实现
图片的横向瀑布流,其实简单地按顺序排列就可以了 但要实现每行中各图片都等高(各行不一定等高,但每行里面等高),且每行都占满,就需要用到flex的特性了 控制每行图片高度都一致,可能会影响图片的比例,所 ...
- 不固定图片宽高瀑布流_类百度图片的固定高度横向瀑布流js方法及纯css实现的方法记录...
微信图片_20190117105118.png 纯css实现代码: Document div{ display: flex;/*显示模式设置为弹性盒子*/ flex-wrap: wrap;/*进行强制 ...
- python --获取图片宽高
from PIL import Imageimg = Image.open(f'{BASE_DIR}/media/moren.jpg')width = img.size[0] # 宽 height = ...
- python两张图片无缝合成一张_详解基于python的多张不同宽高图片拼接成大图
#!/usr/bin/env python # -*- coding:utf-8 -*- import PIL.Image as Image import os IMAGES_PATH = 'D:Ma ...
- 基于python的多张不同宽高图片拼接成大图
半年前写过一篇将多张图片拼接成大图的博客,是讲的把所有图片先转换为256×256的图片后再进行拼接,今天看到一个朋友的评论说如何拼接非正方形图片,如47×57,之前有个朋友也问过这个,我当时理解错了, ...
- Python OpenCV:利用滚动条移动图片,利用鼠标缩放图片
Python OpenCV:利用滚动条移动图片,利用鼠标缩放图片 一.实现目标 二.实现背景 三.实现方法 四.运行环境 五.运行代码 六.运行结果 七.不足 八.参考 一.实现目标 在OpenC ...
- python实现两张图片横向和纵向拼接
本文实例为大家分享了python实现图片横向和纵向拼接的具体代码, 这里主要用Python扩展库pillow中Image对象的paste()方法把两张图片拼接起来供大家参考,具体内容如下: 一.代码: ...
- python图片横向合并_python实现图片横向和纵向拼接
本文实例为大家分享了python实现图片横向和纵向拼接的具体代码,供大家参考,具体内容如下 直接上代码: # -*- coding:utf-8 -*- __author__ = 'ShawDa' fr ...
- 利用 python 实现多张图片的无损拼接
利用 python 实现多张图片的无损拼接 以下两段是作者的心路历程,图个乐的可以看一看,想学干货可以直接略过. 导入 python 库 查看需要拼接的图片 横向拼接 保存拼接后的图片 总结 纵向拼接 ...
最新文章
- Understanding G1 GC Logs--转载
- Netty源码 服务端的启动
- 判断一个变量是不是数组
- shell脚本报错:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory
- python刷抖音_用Python生成抖音字符视频!
- C语言字符串数字提取函数,支持负数、浮点数、科学记数法
- B - Friends
- esp8266驱动_【直播视频】微信小程序连接阿里云物联网控制esp8266实现rgb调节。...
- Unity 和腾讯游戏成立联合创新实验室:从技术创新探索游戏产品新模式和概念
- System.IO命名空间
- 如何批量Ping 1000个IP地址,一个小技巧节约N小时?
- 显著性分析-秩和检验与校正
- MAC wps中选中的页面和缩放打印
- 二十一世纪大学英语读写教程学习笔记(原文)——2 - Conversational Ballgames(对话风格与球类运动)
- [Deeplearning]对比散度算法(CD算法)
- box2d的部分心得
- 【文智背后的奥秘】系列篇——情感分类
- pacemaker+nginx+iscsi实现的nginx服务远程储存高可用
- 【考研英语语法】定语从句全面介绍
- 表单验证与自定义表单验证
热门文章
- Untiy 帧同步的探索之路一 位置帧同步
- 商业解决方案策划专家(区块链)
- 炸弹人 html5,HTML5再显威力 与全世界一起玩炸弹人
- Caused by: javax.websocket.DeploymentException: Cannot deploy POJO class
- 误删除的图片怎么恢复?
- springboot配置日志格式化输出到文件
- python下列合法的变量名是什么,python中的合法变量名有什么规则-Python教程
- 浪潮云:国内第一个吃螃蟹的数据云
- python中的鸡兔同笼
- python 麦克风人声检测_如何选择最适合自己的人声麦克风?