python PIL --show me the code 0000

	
	先废话一下,最近在学习python,决定把 github 上面的 show me the code 作为学习轨迹。希望能把过程记录下来, 也算对自己的一种鼓励与督促。

第 0000 题:
将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果




系统环境:win7 x86 
python version:3.4.2

python Imaging Library (PIL)是python下的图像处理模块,支持多种格式,并提供强大的图形与图像处理功能。

目前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')


ps: 在 python 2.7.8 使用PIL 时曾发生异常:

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)






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值