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中用has_key()方法查找键是否存在的教程
May 21 Python
Python中实现三目运算的方法
Jun 21 Python
python修改字典内key对应值的方法
Jul 11 Python
python中模块查找的原理与方法详解
Aug 11 Python
python的schedule定时任务模块二次封装方法
Feb 19 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
python实现两个文件夹的同步
Aug 29 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
python如何实现DES加密
Sep 21 Python
Anaconda的安装与虚拟环境建立
Nov 18 Python
用python对oracle进行简单性能测试
Dec 05 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
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
基于JQuery的Pager分页器实现代码
2010/07/17 Javascript
js显示时间 js显示最后修改时间
2013/01/02 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
2017/06/11 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python递归函数定义与用法示例
2017/06/02 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
简单的命令查看安装的python版本号
2020/08/28 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
自荐信范文
2013/12/10 职场文书
12岁生日感言
2014/01/21 职场文书
《我不是最弱小的》教学反思
2014/02/23 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
法院个人总结
2015/03/03 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python
Windows7下FTP搭建图文教程
2022/08/05 Servers