Skip to main content

PyLf

A lightweight Python library for simulating Chinese handwriting

version python implementation gitter license Build Status

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
from multiprocessing import freeze_support  # 非Windows用户可删除此行


def 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()


if __name__ == '__main__':
    freeze_support()  # 非Windows用户可删除此行
    main()

请参阅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)

Examples

:以下某些图片中之所以缺少个别字,是因为所使用生成该图片的字体本身缺少这些字。

  • 《荷塘月色》

示例代码:article.py

  • 《从百草园到三味书屋》

示例代码:even_odd.py

欲查看更多示例请前往PyLf-examples

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylf-2.0.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pylf-2.0.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file pylf-2.0.0.tar.gz.

File metadata

  • Download URL: pylf-2.0.0.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

File hashes

Hashes for pylf-2.0.0.tar.gz
Algorithm Hash digest
SHA256 8b8c767a8e5f0ac2087b4101b96fae73b768cc7066e9f0061af9531528ff8034
MD5 ca02644c2fd9db921f9e2cbc02ad2fb8
BLAKE2b-256 ecade8a55d4451649bff5280d2bb6c37f6ba2ac0bf78aaa33c178492d053e5ba

See more details on using hashes here.

File details

Details for the file pylf-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: pylf-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

File hashes

Hashes for pylf-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f7073edcaa718bd9b1e2ac70740260b5001fb94bf4c9452d1cb8559df27bb25c
MD5 7d902d4215db880016dad893210a802c
BLAKE2b-256 5db1e4ad4ca5f13c8635e0cee02adda68127dc379a778067ebe96346ae23d854

See more details on using hashes here.

Release history Release notifications | RSS feed

4.1.0

2 files

4.0.0

2 files

3.4.0

2 files

3.3.2

2 files

3.3.1

2 files

3.3.0

2 files

3.2.3

2 files

3.2.2

2 files

3.2.1

2 files

3.2.0

2 files

3.1.0

2 files

3.0.0

2 files

2.1.0

2 files

This release

2.0.0 This release

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page