最近因工作需要,需要在图片上添加数字,查询了资料,自己写了一个方法,并进行了测试,由于代码用到了PIL库,需要下载安装,下载地址:http://www.pythonware.com/products/pil/,下载Imaging-1.1.7.tar.gz后解压得到,Imaging-1.1.7,在命令行下运行setup.py进行安装
具体实现代码如下:
# -*- coding: utf-8 -*-
import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
'''在图片上添加数字,imageFile为要添加数字的图片文件,fontFile为字体文件,
targetImageFile为添加数字后保存的图片文件,txtnum为添加的数字'''
def DrawImageTxt(imageFile,fontFile,targetImageFile,txtnum):
#设置字体大小
font = ImageFont.truetype(fontFile, 46)
#打开文件
im = Image.open(imageFile)
#字体坐标
x = im.size[0]/2
y = im.size[1]/2
p = (x,y)
draw = ImageDraw.Draw(im)
draw.text(p, txtnum , (255,255,255), font=font)
#保存
im.save(targetImageFile)
#关闭
im.close()
#测试代码
imageFile = r"D:\test.png"
fontFile = r"D:\arialuni.ttf"
targetImageFile = r"D:\target.jpg"
txtnum= '34'
DrawImageTxt(imageFile,fontFile,targetImageFile,txtnum)