昨天尝试了在图片上添加文字(传送门:初学Python-简单的在图片上加文字)
今天就来尝试在图片上添加png
为什么是png图片?jpg可以不?
当然是可以的!
但是考虑到,logo一般为了好看,都采用底部透明的png文件,而且png比jpg处理的方式还复杂一丢丢。
所以这里就以png为代表来做案例。
实现方式
1.引入PIL函数库(不具体说)
如何在windows安装PIL库,具体可看:初学Python-windows安装PIL库
2.打开图片(不具体说)
方法:Image.open()
3.设置png图片属性
这部分是自定义内容,不是必须的,可以不加这部分代码的。根据实际需求进行调整!
案例中大概列了几个调整的地方:
① 重新设置png图片的尺寸大小:resize()
② 对png分离颜色通道
这一步很重要!如果不获取颜色通道,就没办法保持png透明底的属性。(具体原理其实宝宝也不太理解)
而对于jpg图片来说,没有透明底的问题,这一行代码是不需要的!加上会报错滴!
③ 确定png要放置在image图片的哪个位置
这里定义的是相对位置。根据image和png图片的大小,将png放在image图片的右下角,且边距为20px
4.将png粘贴到image图片上,并保存
方法:paste(),将png粘贴在image的(x,y)位置上
这里有个重要的参数:mask,默认不传入。我们要将上面对png颜色通道分离出来的“a”值作为参数赋予mask。
(不要问我为什么,宝宝也不知道!但知道,加上这个参数后,透明的png不再是黑黑的。自行试验。同样jpg图片是不需要传入这个参数滴!)
将粘贴好的image图片保存起来就可以啦!保存格式可以是png,也可以是jpg
执行效果
看到logo没,就这样加上去的。
(哭)因为我们产品的logo是透明底,所以要做一些额外处理。单纯是两个jpg图片合并的话,设置好大小之后,直接调用paste()方法就好了。
初学Python-2018.08.07
慢慢努力,每天学得一点是一点,给自己加油!