A lightweight Python library for simulating Chinese handwriting
Project description
PyLf
A lightweight Python library for simulating Chinese handwriting
Tutorial | Examples | Release Notes | Contributing
Vision
Reveal the nature of Chinese handwriting and use it to implement beautiful, simple and easy-to-use interfaces.
Algorithm & Implementation
首先,在水平位置、竖直位置和字体大小三个自由度上,对每个字的整体做随机扰动。随后,在水平位 置、竖直位置和旋转角度三个自由度上,对每个字的每个笔画做随机扰动。
目前,PyLf基于Pillow开发,并在内部使用multiprocessing 做并行加速。
Installation
由于PyLf的依赖项Pillow会与PIL发生冲突,因此如若您 已安装PIL,请先手动卸载:
pip uninstall PIL
安装PyLf:
pip install pylf
Quick Start
from PIL import Image, ImageFont
from pylf import handwrite
if __name__ == '__main__':
template = {
"background": Image.new(mode="1", size=(2000, 2000), color="white"),
"margin": {"left": 150, "right": 150, "top": 200, "bottom": 200},
"line_spacing": 150,
"font_size": 100,
"font": ImageFont.truetype("path/to/my/font.ttf")
}
for image in handwrite("我能吞下玻璃而不伤身体。", template):
image.show()
请参阅Tutorial。
Features
| 特性 | 相关参数 |
|---|---|
| 设置背景 | background |
| 设置字体及其大小、颜色 | font, font_size, color |
| 设置页边距、行间距、字间距 | margin, line_spacing, word_spacing |
| 调节排版随机化的强弱 | font_size_sigma, line_spacing_sigma, word_spacing_sigma |
| 调节笔画随机扰动的强弱 | perturb_x_sigma, perturb_y_sigma, perturb_theta_sigma |
| 设置在行末不换行的字符集(如:'。', '》', ')', ']') | is_end_char_fn |
| 设置在排版时只占其宽度一半的字符集(如:',', '。', '!') | is_half_char_fn |
| 并行加速 | worker |
| 周期性模板 | template2(详情:pylf.handwrite2) |
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-3.1.0.tar.gz.
File metadata
- Download URL: pylf-3.1.0.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36010827d0a1d5dae695c9d2df67a0b67edc9db126c4cd5f3786e5df43d7a93b
|
|
| MD5 |
ea3e0c53cf14403f2a91a04320b96abb
|
|
| BLAKE2b-256 |
92d89000911c67721804ce1e339fab2ce47823cf7ad379afd8aee5e859737d64
|
File details
Details for the file pylf-3.1.0-py3-none-any.whl.
File metadata
- Download URL: pylf-3.1.0-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81ded7a6a3fb2f7519c7de2c85c24cc66a7178daf57d5fed24a28dd65ed500c0
|
|
| MD5 |
d87fd579f266b24b07e23d75034f846d
|
|
| BLAKE2b-256 |
8da67e92c8f498976de7dddc9c242e7da75abde6fa156a0cae1078f293bda5e9
|