python使用pil库实现图片合成实例代码


Posted in Python onJanuary 20, 2018

本文研究的主要是python PIL实现图片合成的相关内容,具体介绍如下,分享实例代码。

在项目中需要将两张图片合在一起。遇到两种情况,一种就是两张非透明图片的合成, 一种是涉及到透明png的合成。

相关API见 http://pillow.readthedocs.io/en/latest/reference/Image.html

第一种情况,直接将两张图片合在一起就可以了。如下图所示,将两张图片合在一起

python使用pil库实现图片合成实例代码+python使用pil库实现图片合成实例代码=python使用pil库实现图片合成实例代码

详细代码

from PIL import Image
 #加载底图
 base_img = Image.open(ur'D:\Desktop\1.png')
 # 可以查看图片的size和mode,常见mode有RGB和RGBA,RGBA比RGB多了Alpha透明度
 # print base_img.size, base_img.mode
 box = (166, 64, 320, 337) # 底图上需要P掉的区域

 #加载需要P上去的图片
 tmp_img = Image.open(ur'D:\Desktop\2.png')
 #这里可以选择一块区域或者整张图片
 #region = tmp_img.crop((0,0,304,546)) #选择一块区域
 #或者使用整张图片
 region = tmp_img

 #使用 paste(region, box) 方法将图片粘贴到另一种图片上去.
 # 注意,region的大小必须和box的大小完全匹配。但是两张图片的mode可以不同,合并的时候回自动转化。如果需要保留透明度,则使用RGMA mode
 #提前将图片进行缩放,以适应box区域大小
 # region = region.rotate(180) #对图片进行旋转
 region = region.resize((box[2] - box[0], box[3] - box[1]))
 base_img.paste(region, box)
 #base_img.show() # 查看合成的图片
 base_img.save('./out.png') #保存图片

第一种情况时候规则的图片进行合并,比如矩形,难以对于任意形状的图片。对于任意形状的合并可以考虑使用透明的PNG来完成。

第二种情况,将非透明的图片放在底部,上面放一张局部透明的png图片,然后合成一张图片。

python使用pil库实现图片合成实例代码python使用pil库实现图片合成实例代码python使用pil库实现图片合成实例代码

代码

from PIL import Image
 #加载中间透明的手机图片
 base_img = Image.open(ur'D:\Desktop\3.png')
 #新建透明底图,大小和手机图一样,mode使用RGBA,保留Alpha透明度,颜色为透明
 #Image.new(mode, size, color=0),color可以用tuple表示,分别表示RGBA的值
 target = Image.new('RGBA', base_img.size, (0, 0, 0, 0))
 box = (166, 64, 320, 337) #区域
 # 加载需要狐狸像
 region = Image.open(ur'D:\Desktop\4.png')
 region = region.rotate(180) #旋转180度
 #确保图片是RGBA格式,大小和box区域一样
 region = region.convert("RGBA")
 region = region.resize((box[2] - box[0], box[3] - box[1]))
 #先将狐狸像合成到底图上
 target.paste(region,box)
 #将手机图覆盖上去,中间透明区域将狐狸像显示出来。
 target.paste(base_img,(0,0),base_img) #第一个参数表示需要粘贴的图像,中间的是坐标,最后是一个是mask图片,用于指定透明区域,将底图显示出来。
 # target.show()
 target.save('./out.png') # 保存图片

总结

以上就是本文关于python PIL实现图片合成实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python fileinput模块使用介绍
Nov 30 Python
Python读写docx文件的方法
May 08 Python
python 正确保留多位小数的实例
Jul 16 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
python调用matlab的m自定义函数方法
Feb 18 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
python中的单引号双引号区别知识点总结
Jun 23 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 Python
python实现将json多行数据传入到mysql中使用
Dec 31 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 Python
python爬虫selenium模块详解
Mar 30 Python
python方向键控制上下左右代码
Jan 20 #Python
Python线程创建和终止实例代码
Jan 20 #Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 #Python
Python实现PS滤镜的旋转模糊功能示例
Jan 20 #Python
浅谈flask中的before_request与after_request
Jan 20 #Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 #Python
python与sqlite3实现解密chrome cookie实例代码
Jan 20 #Python
You might like
mysql 字段类型说明
2007/04/27 PHP
php 中的4种标记风格介绍
2012/05/10 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
基于php判断客户端类型
2016/10/14 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
EsLint入门学习教程
2017/02/17 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
python如何从文件读取数据及解析
2019/09/19 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
电大自我鉴定范文
2013/10/01 职场文书
给导游的表扬信
2014/01/10 职场文书
工程建设实施方案
2014/03/14 职场文书
应届大专生自荐书
2014/06/16 职场文书
礼貌问候语大全
2015/11/10 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
go:垃圾回收GC触发条件详解
2021/04/24 Golang