先废话一下,最近在学习python,决定把 github 上面的 show me the code 作为学习轨迹。希望能把过程记录下来, 也算对自己的一种鼓励与督促。
第 0000 题:
将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果
系统环境:win7 x86 python version:3.4.2
目前PIL的官方最新版本为1.1.7,支持的版本为python 2.5, 2.6, 2.7,并不支持python3,但有高手把它重新编译生成python3下可安装的exe了。这一非官方下载地址 http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil
或者直接点下面:
PIL-1.1.7.win32-py3.2.exe [994 KB] [Python 3.2] [32 bit] [Jul 03, 2012]
PIL-1.1.7.win32-py3.3.exe [988 KB] [Python 3.3b1] [32 bit] [Jul 03, 2012]
其他版本的可以戳这里 下载相应版本
安装非常简单, 一路下一步,安装完成后就可以开始使用PIL了~
# encoding:utf-8
from PIL.ImageFont import ImageFont
__author__ = 'Administrator'
from PIL import Image
from PIL import ImageDraw
#获取image对象
image = Image.open("mouse.jpg")
#调整image尺寸
image.thumbnail((200,200))
# 获取image尺寸
widtht, hight = image.size
#把image对象作为参数,取得此image对象的draw:
#draw:此image对象的画笔, 拿到draw对象后,就可以调用相应方法,在此image上进行绘制了
draw = ImageDraw.Draw(image)
# draw.arc((x2,y1,x2,y2),start,end,fill):绘制弧线
# 第一个参数:4元坐标,定位绘制的位置
# start,end:表示这段弧是在角度 start 到 end 之间
# fill:颜色
draw.arc((widtht - 31, 0, widtht - 1, 30), 0, 360, fill=(255, 0, 0))
</pre><pre name="code" class="python"># draw.text((x.y),content,fill,font):绘制文本内容
# 第一个参数:2元坐标,定位绘制位置
# content: 所绘制文本内容,字符串类型
# fill: 颜色
draw.text((widtht - 20, 10), '1', fill=(255, 0, 0), font=None)
# 调用系统图片查看器显示绘制后的图片
image.show()
# 保存图片: save(filename,format)
# filename:保存路径
# format:图片保存格式,枚举值为:Bmp,Emf,Exif,Gif,Guid,Icon,Jpeg,MemoryBmp,Png,Tiff,Wmf
# 若 format 参数缺省,则根据 filename 参数指定的后缀进行保存
image.save('0001.jpeg')
show方法不能正常显示图片,windows图片显示器显示图片不存在。
解决方法:
X:\Python27\lib\site-packages\PIL\ImageShow.py, 第99行替换为:
return "start /wait %s && PING 127.0.0.1 -n 5 > NUL && del /f %s" % (file, file)
return "start /wait %s && PING 127.0.0.1 -n 5 > NUL && del /f %s" % (file, file)