python实现多张图片拼接成大图


Posted in Python onJanuary 15, 2019

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

上次爬取了马蜂窝的游记图片,并解决了PIL模块的导入问题,现在直奔主题吧:

import PIL.Image as Image
import os
 
IMAGES_PATH = 'D:\Mafengwo\photo\五月坦桑的暖风,非洲原野的呼唤\\' # 图片集地址
IMAGES_FORMAT = ['.jpg', '.JPG'] # 图片格式
IMAGE_SIZE = 256 # 每张小图片的大小
IMAGE_ROW = 5 # 图片间隔,也就是合并成一张图后,一共有几行
IMAGE_COLUMN = 4 # 图片间隔,也就是合并成一张图后,一共有几列
IMAGE_SAVE_PATH = 'final.jpg' # 图片转换后的地址
 
# 获取图片集地址下的所有图片名称
image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if
    os.path.splitext(name)[1] == item]
 
# 简单的对于参数的设定和实际图片集的大小进行数量判断
if len(image_names) != IMAGE_ROW * IMAGE_COLUMN:
 raise ValueError("合成图片的参数和要求的数量不能匹配!")
 
# 定义图像拼接函数
def image_compose():
 to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE)) #创建一个新图
 # 循环遍历,把每张图片按顺序粘贴到对应位置上
 for y in range(1, IMAGE_ROW + 1):
  for x in range(1, IMAGE_COLUMN + 1):
   from_image = Image.open(IMAGES_PATH + image_names[IMAGE_COLUMN * (y - 1) + x - 1]).resize(
    (IMAGE_SIZE, IMAGE_SIZE),Image.ANTIALIAS)
   to_image.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE))
 return to_image.save(IMAGE_SAVE_PATH) # 保存新图
image_compose() #调用函数

前边设置了很多变量,都很直观,然后时获取图片的名称以及对需要拼接图片的数量进行检查,比如你要拼接5*5的大图,那就需要25张图片,最后是我们的主函数,依次遍历,主要还是利用了Image模块的强大功能,我们需要做的就是无缝对接。

效果如下:

python实现多张图片拼接成大图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python中的__new__()方法的使用
Apr 09 Python
Python字符串中查找子串小技巧
Apr 10 Python
用Python中的字典来处理索引统计的方法
May 05 Python
Django的session中对于用户验证的支持
Jul 23 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
磁盘垃圾文件清理器python代码实现
Aug 24 Python
python操作文件的参数整理
Jun 11 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
Python实现某论坛自动签到功能
Aug 20 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 #Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 #Python
Python数据可视化之画图
Jan 15 #Python
python实现在遍历列表时,直接对dict元素增加字段的方法
Jan 15 #Python
Python txt文件加入字典并查询的方法
Jan 15 #Python
Python XML转Json之XML2Dict的使用方法
Jan 15 #Python
python utc datetime转换为时间戳的方法
Jan 15 #Python
You might like
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
PHP编实现程动态图像的创建代码
2008/09/28 PHP
php导出CSV抽象类实例
2014/09/24 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
JQuery 1.4 中的Ajax问题
2010/01/23 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
javascript中clone对象详解
2014/12/03 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
Python中tell()方法的使用详解
2015/05/24 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
Python编程中类与类的关系详解
2019/08/08 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
小学生暑假感言
2014/02/06 职场文书
期末评语大全
2014/05/04 职场文书
寻找成龙观后感
2015/06/12 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android