首頁  >  文章  >  後端開發  >  Python輸出漢字字庫及將文字轉換為圖片

Python輸出漢字字庫及將文字轉換為圖片

高洛峰
高洛峰原創
2017-03-03 15:21:584194瀏覽

用python輸出漢字字庫

問題1:假設我們知道漢字編碼範圍是0x4E00到0x9FA5,怎麼從十六進位的編碼轉成人類可讀的字呢?
問題2:怎麼把unicode編碼的字寫入檔案呢,如果直接用open()的話,會提示UnicodeEncodeError: 'ascii' codec can't encode character u'\u4e00' in position 0: ordinal not in range(128)

問題1的答案是用unichr,問題2的答案是用codecs。
下面上程式碼。

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))

開啟chinese.txt文件,截圖如下

Python輸出漢字字庫及將文字轉換為圖片


##用python將文字轉圖片字庫
上面提到怎麼得到漢字字庫,下面就來講怎麼把一個一個的字轉成圖片,這在機器學習中會有用處。
一句話,用pygame渲染文字到圖片上。
下面上程式碼。

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"))

下面是效果截圖。


Python輸出漢字字庫及將文字轉換為圖片

更多Python輸出漢字字庫及將文字轉換為圖片相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn