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 相关文章推荐
深入理解Python3中的http.client模块
Mar 29 Python
python编程实现希尔排序
Apr 13 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
Python读取excel中的图片完美解决方法
Jul 27 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 Python
在python中logger setlevel没有生效的解决
Feb 21 Python
python中wheel的用法整理
Jun 15 Python
python不同版本的_new_不同点总结
Dec 09 Python
pytorch中的model.eval()和BN层的使用
May 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
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
php删除指定目录的方法
2015/04/03 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
原生js开发的日历插件
2017/02/04 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
python使用marshal模块序列化实例
2014/09/25 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
pandas参数设置的实用小技巧
2020/08/23 Python
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
生产现场工艺工程师岗位职责
2013/11/28 职场文书
小学开学寄语
2014/01/19 职场文书
安全生产承诺书范文
2014/05/22 职场文书
盗窃案辩护词
2015/05/21 职场文书
企业党建工作总结2015
2015/05/26 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技