ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Handright 中文手写模拟:一份脚本生成手写中文

Handright 中文手写模拟:一份脚本生成手写中文 Handright 中文手写模拟一份脚本生成手写中文【免费下载链接】HandrightA lightweight Python library for simulating Chinese handwriting项目地址: https://gitcode.com/gh_mirrors/ha/HandrightHandright 是一个轻量的中文手写模拟 Python 库。它把文字排到你指定的背景图上对每个字、每笔做随机扰动再输出可保存的手写效果图片。做电子贺卡、海报文案、数字书信时它是从打印文本到手写文档图像的最短路径。 一分钟看懂核心机制Handright 的扰动分两层。字级每个字在水平位置、竖直位置、字体大小三个自由度上做随机扰动。笔画级每个字的每条笔画再做水平、竖直平移和角度旋转。所有随机值取自高斯分布强度由对应的*_sigma参数控制sigma 越大手抖感越强。中文手写模拟的排版参数关系字号、字距、行距和四周边距决定每个字的落点 第一个能跑的例子一行安装手写效果 Python 库渲染基于 Pillow字体需要是仿手写的 truetype 字体仓库 tests/fonts/ 目录下有一个示例字体可参考。pip install handrightfrom PIL import Image, ImageFont from handright import Template, handwrite text 我能吞下玻璃而不伤身体。 template Template( backgroundImage.new(mode1, size(1024, 1400), color1), fontImageFont.truetype(path/to/my/font.ttf, size100), line_spacing150, left_margin80, top_margin80, right_margin80, bottom_margin80, word_spacing10, ) for i, im in enumerate(handwrite(text, template)): im.save(foutput_{i}.png)关键参数size是字体大小越大字形越平滑但要求更大的背景line_spacing是行距像素值缺省取字号四边 margin 划出可写区域word_spacing是基础字距负值更紧凑fill是笔画颜色默认黑色。参数调优速查表参数作用建议起点值font的size字体大小越大字形越平滑80~100line_spacing基础行距像素缺省等于字号字号的 1.3~1.5 倍word_spacing基础字距像素0~15line_spacing_sigma行距随机扰动强度字号 / 32font_size_sigma字号随机扰动强度字号 / 64word_spacing_sigma字距随机扰动强度字号 / 32perturb_x_sigma/perturb_y_sigma笔画级横/纵平移扰动强度字号 / 32perturb_theta_sigma笔画级旋转扰动强度弧度0.05~0.07start_chars/end_chars禁止出现在行尾/行首的字符集合默认已覆盖常见标点 常见玩法电子贺卡手写效果自定义背景问题白底背景太素。怎么调把信笺纸图片直接作为background传入四周 margin 调小以贴合信纸横线sigma 保持不变。预期效果文字自动落在信纸上整图即可作为贺卡发出。村庄主题信笺纸作为中文手写模拟背景行距可与信纸横线对齐练习纸排版调整手写随机扰动参数 sigma问题生成文字太工整、像印刷体。怎么调把line_spacing_sigma提到字号 / 16perturb_theta_sigma提到 0.1。预期效果字位错落、笔画微斜接近真人练习字的手感。网格纸背景用于观察中文手写模拟中每字的对齐与偏移效果长文档提速并行渲染多页问题文字量大时单进程渲染慢。怎么调给handwrite传mappermultiprocessing.Pool.map其余参数不动。预期效果多页并行渲染总耗时接近单页耗时 × 页数 ÷ 进程数。⚠️ 踩坑与速查现象原因解法抛LayoutError背景装不下边距行距字号或字号大于行距放大背景或保证font.size ≤ line_spacing抛BackgroundTooLargeError背景单边超过 65534 像素缩小背景图word_spacing0仍偏宽字距还受字体实际宽度影响将word_spacing设为负值需大于 -font.size//2排版整齐但缺乏手写感未显式设置*_sigma用了很小的默认值按速查表逐项设置 sigma长文本生成慢默认单进程渲染传mappermultiprocessing.Pool.map进一步深入完整参数示例与页面渲染流程见 官方教程排版与笔画扰动的具体实现在 handwrite 核心源码模板字段与默认值定义在 Template 类。吃透这几个默认值用法就收敛为一件事选 sigma。【免费下载链接】HandrightA lightweight Python library for simulating Chinese handwriting项目地址: https://gitcode.com/gh_mirrors/ha/Handright创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表