A lightweight Python library for simulating Chinese handwriting
Project description
PyLf
Examples | Release Notes | Contributing
PyLf是一个模仿中文手写的轻量级Python库。其通过在处理过程中广泛引入随机性来模仿汉字书写。目前,PyLf基于Pillow开发,且在内部采用对点阵图形处理的方式来得到最终的图像。
Installation
由于PyLf的依赖项Pillow会与PIL发生冲突,因此如若您已安装PIL,请先手动卸载:
pip uninstall PIL
安装PyLf:
pip install pylf
Quickstart
from PIL import Image, ImageFont
from pylf import handwrite
from multiprocessing import freeze_support # 非Windows用户可删除此行
def main():
template = dict(background=Image.new(mode='RGB', size=(800, 1000), color='rgb(255, 255, 255)'),
box=(100, 200, 800 - 100, 1000 - 200), # 设置在背景图上的手写区域
font=ImageFont.truetype("YOUR FONT PATH"), # 填入您所使用字体文件的路径
font_size=50)
text = "我能吞下玻璃而不伤身体。"
images = handwrite(text, template)
for image in images:
image.show()
if __name__ == '__main__':
freeze_support() # 非Windows用户可删除此行
main()
首先,您可通过使用pydoc来查看PyLf的完整API文档。
如以上代码所示,函数pylf.handwrite是整个PyLf库的核心。而模板template则是本库的一个重要概念。模板包含着在手写模仿过程中所需的背景、排版设置、字体、随机性强度等参数。这些参数通常因背景图和用户书写习惯的不同而不同。一般情况下,在第一次使用某个背景时,您需要根据自己的手写特征创建特定的模板(往往需要经历不断的调试)。
另外,请您在更新PyLf后及时参阅Release Notes,以了解新版本的变化,特别是在主版本更新的时候(其中往往蕴含着不后向兼容的改动)。
Features
| 特性 | 相关参数 |
|---|---|
| 设置背景 | background |
| 设置字体及其大小、颜色 | font, font_size, color |
| 设置手写区域、行间距、字间距 | box, line_spacing, word_spacing |
| 调节排版随机化的强弱 | font_size_sigma, line_spacing_sigma, word_spacing_sigma |
| 调节页面随机扰动的强弱 | alpha |
| 设置在行末不换行的字符集(如:'。', '》', ')', ']') | is_end_char |
| 设置在排版时只占其宽度一半的字符集(如:',', '。', '!') | is_half_char |
| 抗锯齿 | anti_aliasing |
| 多线程加速 | worker |
| 周期性模板 | template2(详情:pylf.handwrite2) |
Examples
注:以下某些图片中之所以缺少个别字,是因为所使用生成该图片的字体本身缺少这些字。
- 《荷塘月色》
示例代码:article.py
- 《从百草园到三味书屋》
示例代码:even_odd.py
欲查看更多示例请前往PyLf-examples。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pylf-1.3.0.tar.gz.
File metadata
- Download URL: pylf-1.3.0.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05a42c7627379bbf9dac62912faa5df0ae8bee7814b940a00823a2ea183e2068
|
|
| MD5 |
48e6b5f963ad45d85286f794daaa6718
|
|
| BLAKE2b-256 |
20b470ecfe2e8784c93b298d63bf8d7f168f87c52084f10a575b3f27680e32ef
|
File details
Details for the file pylf-1.3.0-py3-none-any.whl.
File metadata
- Download URL: pylf-1.3.0-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e2166dffacbee4317698ae05cd072181b61244a1d42ac95830779604b313b17
|
|
| MD5 |
de564fad4252b496edfb86f949d99e7d
|
|
| BLAKE2b-256 |
5ed2af75a4197168c19621b5561e20aaa87d9cc281bb6ffafdd3cc8ac896e6d2
|