Python输出汉字字库及将文字转换为图片的方法

用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将文本转图片字库
上面提到怎么得到汉字字库,下面就来讲怎么把一个一个的字转成图片,这在机器学习中会有用处。
一句话,用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"))

下面是效果截图。

(0)

相关推荐

  • 使用Python脚本将文字转换为图片的实例分享

    有时候,我们需要将文本转换为图片,比如发长微博,或者不想让人轻易复制我们的文本内容等时候.目前类似的工具已经有了不少,不过我觉得用得都不是很趁手,于是便自己尝试实现了一个. 在 Python 中,PIL (Python Imaging Library) 是最常用的绘图库,自然地,尝试从 PIL 开始. 使用 PIL 将文字转换为图片 说转换其实并不恰当,真实的过程是:先在内存中生成一张图片,将需要的文字绘制到这个图片上,再将图片保存到指定位置.代码如下: # -*- coding: utf-8

  • Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.OpenCV中并没有使用自定义字体文件的函数,这不仅意味着我们不能使用自己的字体,而且意味着他无法显示中文字符.这还是非常要命的事情.而且他显示出来的文字位置也不太好控制.比如下面的代码,他想做的仅仅是显示数字3: 代码: #coding=utf-8 import cv2 import numpy as

  • Python输出汉字字库及将文字转换为图片的方法

    用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. 下面上代

  • 对Python生成汉字字库文字,以及转换为文字图片的实例详解

    笔者小白在收集印刷体汉字的深度学习训练集的时候,一开始就遇到的了一个十分棘手的问题,就是如何获取神经网络的训练集数据.通过上网搜素,笔者没有找到可用的现成的可下载的汉字的训练集,于是笔者采用了代码自建汉字的训练集数据. 这里采用的是python编写程序,需要import 的python库请提前安装. 那么,首先如何用python输出汉字字库的文字? 笔者查到在计算机中汉字编码范围是0x4E00到0x9FA5,利用unichr()可以将十六进制的编码转成人类可读的字. 这里扩展一下在python库

  • python数据预处理之将类别数据转换为数值的方法

    在进行python数据分析的时候,首先要进行数据预处理. 有时候不得不处理一些非数值类别的数据,嗯, 今天要说的就是面对这些数据该如何处理. 目前了解到的大概有三种方法: 1,通过LabelEncoder来进行快速的转换: 2,通过mapping方式,将类别映射为数值.不过这种方法适用范围有限: 3,通过get_dummies方法来转换. import pandas as pd from io import StringIO csv_data = '''A,B,C,D 1,2,3,4 5,6,,

  • python下的opencv画矩形和文字注释的实现方法

    画矩形 函数调用:cv2.rectangle(img,pt1,pt2,color,thickness,line_type,shift) img: 图像. pt1: 矩形的一个顶点. pt2: 矩形对角线上的另一个顶点 color: 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image). thickness: 组成矩形的线条的粗细程度.取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形. line_type: 线条的类型.见cvLine的描述 shift: 坐标点的

  • Python不使用int()函数把字符串转换为数字的方法

    不使用int()函数的情况下把字符串转换为数字,如把字符串"12345"转换为数字12345. 方法一:利用str函数 既然不能用int函数,那我们就反其道而行,用str函数找出每一位字符表示的数字大写. def atoi(s): s = s[::-1] num = 0 for i, v in enumerate(s): for j in range(0, 10): if v == str(j): num += j * (10 ** i) return num 方法二:利用ord函数

  • Python挑选文件夹里宽大于300图片的方法

    本文实例讲述了Python挑选文件夹里宽大于300图片的方法.分享给大家供大家参考.具体分析如下: 这段代码需要用到PIL库.代码如下所示: import sys import os sys.path.append('PIL') from PIL import Image as im path = '/home/hualun/桌面/img/' new_path = '/home/hualun/桌面/img2/' for x in os.listdir(path): if x.endswith('

  • Python爬虫实现获取动态gif格式搞笑图片的方法示例

    本文实例讲述了Python爬虫实现获取动态gif格式搞笑图片的方法.分享给大家供大家参考,具体如下: 有时候看到一些喜欢的动图,如果一个个取保存挺麻烦,有的网站还不支持右键保存,因此使用python来获取动态图,就看看就很有意思了 本次爬取的网站是  居然搞笑网 http://www.zbjuran.com/dongtai/list_4_1.html 思路: 获取当前页面内容 查找页面中动图所代表的url地址 保存这个地址内容到本地 如果想爬取多页,就可以加上一个循环条件 代码: #!/usr/

  • Python实现向PPT中插入表格与图片的方法详解

    目录 插入表格 插入图片 上一章节学习了如何在 PPT 中添加段落以及自定义段落(书写段落的内容以及样式的调整),今天的章节将学习在 PPT 中插入表格与图片以及在表格中插入内容. 废话不多说了,直接进入主题. 插入表格 首先还是要生成 PPT 对象: ppt = Presentation() 通过 Presentation() 实例化一个 ppt 对象(Presentation 可以通过 python-pptx 直接拿过来使用) 选择布局: layout = ppt.slide_layout[

  • Python之文字转图片方法

    Pygame模块一览表: 引入pygame模块 ,若本机没有请自行pip install pygame #载入必要的模块 import pygame #pygame初始化 pygame.init() # 待转换文字 text = u"文字转图片" #设置字体和字号 font = pygame.font.SysFont('Microsoft YaHei', 64) #渲染图片,设置背景颜色和字体样式,前面的颜色是字体颜色 ftext = font.render(text, True, (

随机推荐