本文由我司收集整编,推荐下载,如有疑问,请与我司联系
Python PIL
创建文字图片
PIL
库中包含了很多模块,恰当地利用这些模块可以做许多图像处理方面的工
作。
下面是我用来生成字母或字符串测试图片而写的类及测试代码。
主要用到的模块:
PIL.Image,PIL.ImageDraw,PIL.ImageFont
PIL.Image
用来生成一个空的图片,
ImageDraw
用来在空图片上画图及写字符,
ImageFont
则是创建需要使用到的字体
主要用到的代码:
#
创建一个空的图片
self.img
=
Image.new(self.imgMode,
self.imgSize,
self.bg_color)self.drawBrush = ImageDraw.Draw(self.img)#
创建画刷,用来写文字到图
片
img
上
#
创建字体,
fontFile
为字体文件,若非系统字体需加详细路径
self.font
=
ImageFont.truetype(fontFile,fontsize)#
使用特定字体写字,
(
textX0,textY0
)为文字开
始的左上角起始位置
self.drawBrush.text((textX0,textY0),
self.letters,
fill=self.fg_color,font=self.font)
详细代码:
#-*-
coding:gb2312
-*-from
PIL
import
Image,ImageDraw,ImageFont,ImageOpsimport
numpy
as
npimport
random
def
__init__(self,fontFile=‘‘,imgSize=(0,0),imgMode=‘RGB’,bg_color=(0,0,0),fg_color=(255,
255,255),fontsize=20):
self.imgSize
=
imgSize
self.imgMode
=
imgMode
self.fontsize
=
fontsize self.bg_color = bg_color self.fg_color = fg_color# self.font = ImageFont.load(‘
车
牌字体
.ttf’)
if
‘‘==fontFile:
self.font
=
ImageFont.truetype(‘DIN1451.ttf’,
fontsize)
else:
self.font
=
ImageFont.truetype(fontFile,fontsize)
self.letters
=
letters
(self.letterWidth,self.letterHeight)
=
self.font.getsize(letters)
if
self.imgSize==(0,0):
self.imgSize=(self.letterWidth+2,self.letterHeight+2)
self.imgWidth,self.imgHeight=self.imgSize
self.img
=
Image.new(self.imgMode,
self.imgSize,
self.bg_color)
self.drawBrush
=
ImageDraw.Draw(self.img)
textY0
=