ホームページ >バックエンド開発 >Python チュートリアル >Python は漢字フォントを出力し、テキストを画像に変換します

Python は漢字フォントを出力し、テキストを画像に変換します

高洛峰
高洛峰オリジナル
2017-03-03 15:21:584247ブラウズ

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 は漢字フォントを出力し、テキストを画像に変換します


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 は漢字フォントを出力し、テキストを画像に変換します

Python による漢字フォントの出力とテキストの画像への変換に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。