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用10行代码实现对黄色图片的检测功能
Aug 10 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
Django 前后台的数据传递的方法
Aug 08 Python
django创建自定义模板处理器的实例详解
Aug 14 Python
Python 错误和异常代码详解
Jan 29 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
Python-opencv 双线性插值实例
Jan 17 Python
解决flask接口返回的内容中文乱码的问题
Apr 03 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
python实现猜数游戏(保存游戏记录)
Jun 22 Python
OpenCV中resize函数插值算法的实现过程(五种)
Jun 05 Python
Python实现天气查询软件
Jun 07 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字符串截取问题
2006/11/28 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
JavaScript中null与undefined分析
2009/07/25 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
js读取本地文件的实例
2017/12/22 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
解决vue 引入子组件报错的问题
2018/09/06 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
python实现下载文件的三种方法
2017/02/09 Python
Python numpy 常用函数总结
2017/12/07 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
python redis 删除key脚本的实例
2019/02/19 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
应届毕业生个人求职信范文
2014/01/29 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书