Python文字转图片,PIL库,可直接引用

  • Post author:
  • Post category:python


使用了PIL库。

PIL有3个模块

Image,ImageFont,ImageDraw。


可以参考大佬们的相关学习链接:


Image模块:





Python图像处理PIL各模块详细介绍_章子雎的博客-CSDN博客_pil.image




ImageFont模块:


Python图像处理库PIL的ImageFont模块介绍_icamera0的博客-CSDN博客_imagefont.truetype


ImageDraw模块:





Python图像处理库PIL的ImageDraw模块介绍_icamera0的博客-CSDN博客




直接给出代码:


调用了PIL,time(计时)库,如果Python环境配置正确不会报错。


from PIL import Image,ImageFont,ImageDraw

import time


def size_add(tuple_file,add): #将tuple_file(二维元组)加宽add,以元组输出

tuple_file=list(tuple_file)

print(‘文本占用像素:’,tuple_file)

tuple_file[0]=tuple_file[0]+100 ; tuple_file[1]=tuple_file[1]+100

return tuple(tuple_file)


print(‘这是一个文字转图片的工具,输出为JPG格式。’)

file_place=input(‘输入文本的路径:如E:\\Python_file\\文字转图片\\temp.txt’)

file_size=int(input(‘输入字体大小(建议50)’))

time_start=time.perf_counter()


print(‘计时开始,程序运行中…..\n’)

fo=open(file_place,encoding=’utf-8′) #编码方式我utf-8,支持中文

text=fo.read() #读取这个文件,txt格式

fo.close()  #关闭打开的文本

im = Image.new(“RGB”, (10, 10), ‘white’)  #新建一个图像

draw= ImageDraw.Draw(im) #建立一个绘图的对象

font = ImageFont.truetype(‘C:\\Windows\\Fonts\\simkai.ttf’, file_size)  #设置字体格式楷体和大小

im_size=draw.textsize(text,font=font) #得到文本占用像素大小

im_size=size_add(im_size,file_size) ##将文本大小加大一行

im = Image.new(“RGB”, im_size, ‘white’) #创建等大的图像

draw= ImageDraw.Draw(im) #建立一个绘图的对象

draw.text((0,0), text, font=font, fill=”black”) #在图像上打印文字

print(‘运行时间{:.2}秒’.format(time.perf_counter()-time_start))

im.show() #打开这个图片


样例:


常用的函数总结:


Image模块:

Open:加载图片


im = Image.open(



“E:\mywife.jpg”



)

Save:保存图片


im.




save(




“E:\mywife.png”




)

Show:打开图片:


im.show()

format:查看图片格式:


print(im.format)





## 打印出格式信息


Mode:图像的模式:灰度图像,彩色图像等。


print(im.mode)





## 打印出模式信息


Convert:将当前图像转换为其他模式,并且返回新的图像。


new_im = im



.convert



(



‘P’



)

图像的模式:

New:使用给定的变量mode和size生成新的图像:


n_im= Image.




new(




“RGB”




, (




128




,




128




)




,




“green”




)

Copy:拷贝这个图像


im =



Image



.open(



“E:\mywife.jpg”



)




拷贝一个新的图像

Crop:截取图像:


box = (



300



,



100



,



700



,



700



)





##确定拷贝区域大小





region = im.crop(box)





##将im表示的图片对象拷贝到region中,大小为box


Resize:改变图像的尺寸:


region = im.




resize((




400




,




400




)




) ##重新设定大小

Seek:截取GIF图像特定的帧:


im_gif.




show(




3




)




##第




3







ImageDraw模块

Draw:创建一个可以在给定图像上绘图的对象:


draw =ImageDraw.Draw(im01)

Arc:在给定的区域内,在开始和结束角度之间绘制一条弧(圆的一部分)







draw.arc((0,0,200,200),0, 90, fill = (255,0,0))

圆,椭圆,长方形等。

Text:在图像中加入英文,不支持中文,不能设置字体大小:


draw.text((0,0),”Hello”, fill = (255,0,0))

ImageDraw模块的option变量:

Option变量有三个属性,分别为outline,fill和font。Outline和fill都可为整数或者元组;font为ImageFont类的实例。变量option的font用于指定所用字体。它应该是类ImangFont的一个实例,使用ImageFont模块的load()方法从文件中加载的。变量options的fill给定文本的颜色:


dr.text((




0




,




0




),




‘Hollow’




, font=font, fill=”#000000″)




位置,转换文本,字体,颜色

Textsize:返回给定字符串的大小,以像素为单位。


draw.textsize(string,options)⇒




(width, height)




ImageFont模块



Truetype:创建一个字体对象。


ImageFont.truetype(file,size)









Font instance



>>> ft = ImageFont.truetype(“C:\\Windows\\Fonts\\simhei.ttf”, 20)




#楷体



>>> draw.text((30,30), u”Python图像处理库PIL从入门到精通”,font = ft, fill = ‘red’)



版权声明:本文为m0_51545826原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。