python代码图片头像_python图像处理-个性化头像
前言
本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。
前言
很多时候我们都想要一个专属的头像表现,除了图像内容外不同,形状不一样,下面我就来说说如何使用python来实现个性化头像。
下面的圆形头像和牛角头像都是我使用python实现的,接下来我将通过讲解这个实现的过程,给大家带来一些想法。
实现原理
我们可以看到原来图片是方正的,通过处理后,图像形状外的地方都变成白色,这里实际上是透明,上面第三幅图可以帮助我们理解。
我们的处理过程其实就是将原来的图片变成RGBA格式,RGB是红绿蓝三种颜色,这里的A就是透明通道的意思,A的取值范围是从0-255之间变化,当A设置为0时,完全透明,255时完全不透明。
下面蓝色圆形,可以看到透明度越高,自身的颜色就变淡了,底部的文字就看的更清楚了,如果100%透明,圆形就会消失不存在了。
回到我们上面原来的猫图片,只要我们能够将猫图像的圆形区外的所有地方变成完全透明(看不见了),那么整个图片就变成圆形的了。
这里如果自己去计算圆形的边界,圆形外侧全部设置为完全透明,圆形内容不变,一个个像素点去处理,那将会非常麻烦,牛角的就更不用想了。
在PIL库里面,提供了两种方法帮助我们去解决这个问题,第一种是使用Image.putalpha方法;第二种是使用Image.paste蒙版粘贴图片的方法。
putalpha方法代码实现
这里的putalpha正常里面是放入一个0-255的数字的,表示要将这整张图片设置为透明度为多少,这是方式对于整张图片都更改透明度非常方便,但是对于更改局部或者特定形状部分的透明度就不行了;这里使用另外一种方式,传入一张灰度图模式的圆形图片(灰度图是黑白图片,灰度0是显示黑色的,灰度255是显示白色的),猫的圆形外的透明度就被设置成黑色所代表的数值0,而0在透明度中是表示完全透明的,最终猫的圆外就变成透明了,里面白色部分不透明显示出一个圆形。
上面是通过自己绘制一个图片来实现的,如果要实现一个牛角的,可能自己不会绘制,那可以去找一个现成的。
下面我就找了一张牛角图片,但是牛角是黑色的,外部是白色的,这个出来的效果是下面这样的。
显示出的效果不符合我的要求,我想要的是中间是牛角,周围是透明的,下面利用PIL的ImageOps方法先进行反色处理,把白的变成黑,黑的地方变成白,其它步骤不变。
paste方法代码实现
上面是使用putalpha方法实现的,下面再来看看如何使用paste方法如何实现。paste是粘贴的意思,如果后面没有第三个,那么就是在某个位置粘贴一张图片,最后的效果如下。
上面的效果并不是我们想要的,paste除了上面两个参数,还有第三个参数蒙版图像,这里要注意蒙版图像和putalpha的图像有所区别,中间是黑色,边缘是白色;因为蒙版的运行原理是,灰度图黑色时数值是0,表示透明度就是完全透明的意思,白色数值是255,表示透明图是完全不透明,所以整个效果就是黑色部分会透明显示出下面一层的猫,而白色部分不透明也就保留原来效果。
可优化方向
上面的图片边缘还有锯齿,也就是不够工整,但是影响不大,这个可以自己尝试再去优化调整一下。
(全文完)
python代码图片头像_python图像处理-个性化头像相关推荐
- python语言头像_python图像处理-个性化头像
前言 本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑.如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过. 前言 ...
- python读取图片文件名_python图像处理基础之PIL和opencv
python图像处理基础 pip install pillow 安装PIL库 1.读取图片 from PIL import Image import numpy as np #打开图片 img = I ...
- python代码图片头像_Python帮你微信头像任意添加装饰别再@微信官方了
@微信官方 昨天朋友圈刷爆了@微信官方的梗,从起初的为头像添加国旗,到最后的各种Book思议的需求-而我呢?@了辣么辣么多的奥特曼,结果还是加班到12点多-最后想想,人还是得靠自己吧,@我自己吧- 昨 ...
- python代码图片头像_Python图片裁剪实例代码(如头像裁剪)
今天就来说个常用的功能,图片裁剪,可用于头像裁剪啊之类的.用的还是我们之前用的哪个模块pillow 1. 安装pillow 用pip安装 pip install pillow 2. 图片裁剪 2.1 ...
- python代码图片头像_GitHub - nonPointer/avatar_generator: 头像图片生成器 Python代码
avatar_generator 哈希头像图片生成器 Python代码 Identicon 在很多大型IT网站上可以见到,比如 Github, Sourceforge, Stackoveflow 等等 ...
- python代码图片头像_60行Python代码一键拼出你的微信好友图片墙!
原标题:60行Python代码一键拼出你的微信好友图片墙! 源 /高级农民工文 /苏克1900 近 2000 位好友的头像拼图,有没有犯密集恐惧症?这并不震撼,如果你有 5000 位好友的话,做出来的 ...
- python微信头像_Python玩微信——头像组字
上一篇,用Python实现了拿微信好友头像来拼接背景,融合成自己的新头像. 再之前呢,我们也实现了点阵字的输出与展示. 正好今天有位老哥过生日,我就把头像拼接和点阵字结合起来,搞了个头像成字的代码,请 ...
- 大蟒蛇python头像_Python微信好友头像大拼图案例
最近和微信好友有关的数据分析基本都已经实现,包括微信好友性别分布分析及饼图可视化展示案例,微信好友地区分布分析及地图可视化展示案例,微信好友签名分析(数据挖掘)及文字云直观展示案例,参考此前的几篇文章 ...
- python识别图片中数字_Python图像处理之图片验证码识别
在上一篇博客Python图像处理之图片文字识别(OCR)中我们介绍了在Python中如何利用Tesseract软件来识别图片中的英文与中文,本文将具体介绍如何在Python中利用Tesseract软件 ...
最新文章
- nginx 在负载均衡中 的配置 以获取真实IP
- 【struts2+hibernate+spring项目实战】数据报表jxl及生成excel(ssh项目实战)
- PyQt5 笔记6 -- 对话框(QDialog)
- boost::packaged_task相关的测试程序
- iOS经典面试题之深入解析类Class的iskindOfClass与isMemberOfClass的底层原理
- 使用 ArcGIS Desktop 切瓦片
- ethercat主站给从站分配多个地址_Profinet 与 EtherCAT 网关使用方法
- 读《深入分析Java Web技术内幕》
- 阿里云祝顺民:云网络的十年“修路”历程
- trace (矩阵的迹) 的性质
- hadoop中HDFS命令遇到的问题
- mysql 批量插入 性能_MySQL批量插入数据性能比较
- 网赚项目:揭秘闲鱼项目,信息差赚钱新手也能日入200+
- 电脑端微信多开操作方法
- 学生奖学金评定系统c语言,学生奖学金评定系统.doc
- js中Error对象
- HDU-4126(Genghis Khan the Conqueror)
- 挺带劲!这款免费开源的监控系统真强大~
- JavaWeb实现生成二维码
- Kubernetes--Pod的DNS域名和相关特性
热门文章
- 网易云音乐常用API浅析
- 组员组长mysql_GitHub - gzh51906/ManKeZhan: 组长:黄林芳 组员:陈炜,王佳伟
- dell10代cpu装linux,戴尔10代CPU完美装Win7|DELL 10代CPU装Win7教程
- dell10代cpu装linux,戴尔10代cpu装win7系统及bios设置|戴尔十代cpu台式机装win7
- 微信在线EXCEL自动统计人数
- DM MPP集群(带交叉守护进程)安装配置
- 小程序基于Taro的Canvas写字效果和背景图水印效果
- GeoServer结合FWTools切片工具发布影像金字塔切片
- [附源码]Python计算机毕业设计SSM绩效考核管理系统(程序+LW)
- 在 Docker 上搭建 PostGIS 数据库实现空间数据存储及可视化