form1.cn
Make a little progress every day

python文字转图片(支持中文)

02th of April 2020 Linux tensorflow 408

目前将文字转为图像的方法有两种,一种是利用 pillow 模块,一种是利用 pygame 模块。


下面主要介绍如何利用 pygame 模块进行文字转图片。


pygame的安装

pip install pygame


文字转图片代码

import pygame
pygame.init()     #需要初始化
text = u"Hello Word!  世界,你好!"        #将文本以unicode编码格式存储
# my_font = pygame.font.SysFont("arial", 16) # 使用系统字体
font = pygame.font.Font("F:\\SIMSUN.TTC", 60)  #设置字体
ftext = font.render(text, True, (255, 255, 255, 0.3), (0,0,0))   #渲染字体
pygame.image.save(ftext, "image.jpg")   #存储图像


其中,“F:\SIMSUN.TTC”是下载的支持中文输出的一种字体。

第一个参数是字体名,

第二个自然就是大小,

一般来说“Arial”字体在很多系统都是存在的,如果找不到的话,就会使用一个默认的字体,这个默认的字体和每个操作系统相关,你也可以使用pygame.font.get_fonts()来获得当前系统所有可用字体。


font.render() 

第一个参数是写的文字;

第二个参数是个布尔值,以为这是否开启抗锯齿,就是说True的话字体会比较平滑,不过相应的速度有一点点影响;

第三个参数是字体的颜色;第四个是背景色,如果你想没有背景色(也就是透明),那么可以不加这第四个参数。比如上述代码,(255, 255, 255, 0.3) 是字体颜色,元组第四个代表alpha值,存为png图像会是RGBA格式;(0, 0, 0)是背景颜色,缺省为None(透明)



另一种方法:

from PIL import Image,ImageFont,ImageDraw

import os


text = u"许"

im = Image.new("RGB", (100, 100), (255, 255, 255)) # 图像大小与背景颜色

dr = ImageDraw.Draw(im)

font = ImageFont.truetype(os.path.join("", "STHUPO.TTF"), 80) # 字体与字大小

dr.text((10, 10), text, font=font, fill="#000000") # 字位置与字颜色

im.show()

im.save('output.jpg') # 保存