python PIL 图片处理库

OO~ posted @ 2015年1月12日 14:46 in python , 2078 阅读

    最近学习了 python 的图形处理库 PIL,深刻体会到 python 的强大。就图片的简单处理,如高亮、旋转、resize 等操作,特别是对图片的批量处理,python 较 photoshop 等图片处理工具要来的更容易、更方便。

    安装 PIL 库后,根据自己的需求阅读 PIL 库的使用手册。下面是我在使用该 lib 时,遇到的一些问题和感悟。

需求:在图片右上方添加如手机 App 上消息提醒的数字。

具体实现代码如下:

#!/usr/bin/python

import os, sys
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw

def main():
	img = Image.open("thumb.png")
	fontsize = img.size[1] / 16
	x = img.size[0] - fontsize

	draw = ImageDraw.Draw(img)
	font = ImageFont.truetype("/usr/share/fonts/truetype/msttcorefonts/arial.ttf", fontsize)
	draw.text((x, 0), "9", font=font, fill="red")

	del draw
	img.save("result.png")
	img.show()

if __name__== '__main__':
	main()

分析:

1. 坐标 (0, 0) 表示左上角,整个图片类似镶嵌在坐标的第四像限;img.size 是一个二位数组,依次位图片的宽和高。

2. 在图片上添加内容时注意对应内容也会占位置,所以不能当作点即 pixel 来看待,实际处理时需要考虑添加对象的 size,这就对应代码中右上角坐标 x 的获取。

3. ImageFont 的获取有很多方法,其中较简单的方法从 truetype 中获取,对应 font 存放的位置一般是 /usr/share/fonts/...


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter