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实现电子词典
Apr 23 Python
用Python实现一个简单的能够上传下载的HTTP服务器
May 05 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
如何在python中使用selenium的示例
Dec 26 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Python中新式类与经典类的区别详析
Jul 10 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
Oct 22 Python
Python基于mediainfo批量重命名图片文件
Dec 29 Python
用Python实现职工信息管理系统
Dec 30 Python
python中pdb模块实例用法
Jan 15 Python
Python实现DBSCAN聚类算法并样例测试
Jun 22 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
PHP4 与 MySQL 交互使用
2006/10/09 PHP
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
javascript 定义初始化数组函数
2009/09/07 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
python实现定时同步本机与北京时间的方法
2015/03/24 Python
详解Django中的form库的使用
2015/07/18 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
在校硕士自我鉴定
2014/01/23 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
后进生评语大全
2015/01/04 职场文书
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技