Home >Backend Development >Python Tutorial >Python outputs Chinese character fonts and converts text into pictures
Use python to output Chinese character fonts
Question 1: Assume we know that the Chinese character encoding range is 0x4E00 to 0x9FA5, how to convert from hexadecimal encoding to human readable What about the word?
Question 2: How to write unicode-encoded characters into a file? If you use open() directly, it will prompt UnicodeEncodeError: 'ascii' codec can't encode character u'\u4e00' in position 0: ordinal not in range(128)
The answer to question 1 is to use unichr, and the answer to question 2 is to use codecs.
Code below.
import codecs start,end = (0x4E00, 0x9FA5) with codecs.open("chinese.txt", "wb", encoding="utf-8") as f: for codepoint in range(int(start),int(end)): f.write(unichr(codepoint))
Open the chinese.txt file, the screenshot is as follows
Use python to convert text into picture font
The above mentioned how to get the Chinese character font, now let’s talk about how to convert each character into pictures, which will be useful in machine learning .
In one sentence, use pygame to render text onto pictures.
Code below.
import os import pygame chinese_dir = 'chinese' if not os.path.exists(chinese_dir): os.mkdir(chinese_dir) pygame.init() start,end = (0x4E00, 0x9FA5)#汉字编码范围 for codepoint in range(int(start),int(end)): word = unichr(codepoint) font = pygame.font.Font("msyh.ttc", 22)#当前目录下要有微软雅黑的字体文件msyh.ttc,或者去c:\Windows\Fonts目录下找 rtext = font.render(word, True, (0, 0, 0), (255, 255, 255)) pygame.image.save(rtext, os.path.join(chinese_dir,word+".png"))
The following is a screenshot of the effect.
For more articles related to Python outputting Chinese character fonts and converting text into images, please pay attention to the PHP Chinese website!