用 Python 的 PIL 模块为头像添加“未读消息”提示
2016-08-27 18:46
471 查看
Python 练习册 的第0000题
描述:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果
既然是图像处理,我觉得 PIL 可以胜任,如果是初步上手,可以看看 廖雪峰的Python教程 - PIL。当然,光是教程里使用的函数是不够用的,所以再查查官方的文档。
我上下翻阅文档觉得可以使用以下函数:
- PIL.Image.open(fp, mode=’r’) 打开并辨认出图片,生成图片对象
- PIL.ImageDraw.Draw.text(xy,text, fill=None, font=None, anchor=None) 用来为图片对象绘制数字
- PIL.ImageDraw.Draw.pieslice(xy, start, end, fill=None, outline=None) 用来为图片对象绘制扇形(圆形也就是特殊的扇形辣)
- PIL.ImageFont.truetype(font=None, size=10, index=0, encoding=”) 用来读取 TrueType 和 OpenType 字体文件,同时生成字体对象,还能设定字体对象的大小
让我们测试一下:
效果还不错。
共计7行代码就完成了这个功能,当然通过修改可以写成命令行脚本、批处理脚本,或者更加智能化。
描述:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果
既然是图像处理,我觉得 PIL 可以胜任,如果是初步上手,可以看看 廖雪峰的Python教程 - PIL。当然,光是教程里使用的函数是不够用的,所以再查查官方的文档。
我上下翻阅文档觉得可以使用以下函数:
- PIL.Image.open(fp, mode=’r’) 打开并辨认出图片,生成图片对象
- PIL.ImageDraw.Draw.text(xy,text, fill=None, font=None, anchor=None) 用来为图片对象绘制数字
- PIL.ImageDraw.Draw.pieslice(xy, start, end, fill=None, outline=None) 用来为图片对象绘制扇形(圆形也就是特殊的扇形辣)
- PIL.ImageFont.truetype(font=None, size=10, index=0, encoding=”) 用来读取 TrueType 和 OpenType 字体文件,同时生成字体对象,还能设定字体对象的大小
代码演示
代码是基于 Python3 的,Python2 的 PIL 模块有所不同。#!/usr/bin/env python #-*- coding: utf-8 -*- from PIL import Image, ImageDraw, ImageFont im = Image.open("test.jpeg") # 创建图片对象 w,h = im.size # 获取图片对象的宽和高 # 创建字体对象,我把字体的大小设为高度1/4,如果数字多于个位应该再小点 font = ImageFont.truetype('/Library/Fonts/Arial Rounded Bold.ttf', int(h/4)) # 绘制圆形,第一个参数界定绘制区域,我选择了宽高为原图1/3的右上角区域 ImageDraw.Draw(im).pieslice([(w/3*2, 0), (w, h/3)], 0, 360, fill="red") # 不难发现坐标系是以左上角为原点,向下y递增,向右x递增 ImageDraw.Draw(im).text((w * 0.76, h * 0.02), '5', font=font, fill="white") # 坐标/文本绘制内容/字体对象/填充色 # 展示绘制结果(使用系统默认的图片浏览器) im.show() #当然也可以用im.save()函数保存结果
让我们测试一下:
效果还不错。
共计7行代码就完成了这个功能,当然通过修改可以写成命令行脚本、批处理脚本,或者更加智能化。
相关文章推荐
- python PIL模块安装
- 在python中添加自定义模块
- wordpress二次开发教程手记:为文章编辑器添加一个提示消息
- Windows下Python添加库(模块)路径
- 为Python添加默认模块搜索路径
- 有关系统中消息提示模块中消息提示思路的几种想法
- python使用urllib2模块获取gravatar头像实例
- python模块添加
- 64位centos下安装python的PIL模块
- 为程序添加启动消息提示
- Python添加自定义模块
- Windows下Python添加MySQLdb扩展模块
- Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
- python安装完毕后,提示找不到ssl模块的解决步骤
- ubuntu下添加python模块
- Python2.6 PIL 1.1.7 模块 windows 下import _imagingft的错误。。。
- Python PIL Image模块中有Open方法却没有Close方法!?
- python添加应用模块
- win 7 下 PIL python Image模块 show函数不能正常显示图片
- Windows下Python添加MySQLdb扩展模块