ホームページ >バックエンド開発 >Python チュートリアル >Python は漢字フォントを出力し、テキストを画像に変換します
Python を使用して中国語の文字フォントを出力する
質問 1: 中国語の文字エンコード範囲が 0x4E00 から 0x9FA5 であることがわかっていると仮定します。16 進エンコードから人間が読める文字に変換するにはどうすればよいですか?
質問 2: Unicode でエンコードされた文字をファイルに書き込むにはどうすればよいですか? open() を直接使用すると、「UnicodeEncodeError: 'ascii' codec can't encodecharacter u'u4e00' in Position 0: ordinal not in range(」というメッセージが表示されます。 128 )
質問 1 の答えは unichr を使用することであり、質問 2 の答えはコーデックを使用することです。
コードは以下です。
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を使用してテキストを画像フォントに変換します
上記の漢字フォントの取得方法は、では、それらを 1 つずつ変換する方法について説明します。 単語を画像に変換します。これは機械学習に役立ちます。
一言で言えば、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 による漢字フォントの出力とテキストの画像への変換に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。