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使用py2exe打包程序介绍
Nov 20 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
python实现人脸识别代码
Nov 08 Python
Python进阶之尾递归的用法实例
Jan 31 Python
Python程序运行原理图文解析
Feb 10 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
Python中按值来获取指定的键
Mar 04 Python
python保留小数位的三种实现方法
Jan 07 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
python中re模块知识点总结
Jan 17 Python
教你使用pyinstaller打包Python教程
May 27 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
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
php 缩略图实现函数代码
2011/06/23 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
PHP如何使用Memcached
2016/04/05 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
Python星号*与**用法分析
2018/02/02 Python
想学python 这5本书籍你必看!
2018/12/11 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
《手指教学》反思
2014/02/14 职场文书
关于安全的广播稿
2014/10/23 职场文书
教师个人事迹材料
2014/12/17 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
旅游项目合作意向书
2015/05/08 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS
深入理解go缓存库freecache的使用
2022/02/15 Golang