.webpjson配置支持首先,您必须下载handwriter.py或将其源代码复制到您的IDE。如果要使用自定义配置或字体预设,只需直接克隆手写器:
gitclone https://github.com/Unbinilium/Handwriter.git
其次,安装手工python3所需的依赖项:
pip3 install uuid pillow twine setuptools wheel tox pytest handright
第三,输入手写器路径并运行handwriter.py python3 handwriter.py ,请按照控制台中显示的提示。它使用默认配置生成输出文件.webp 。
最后但并非最不重要的一点是,要避免一些罕见错误,请确保您的文本文件的名称为*.txt ,并且名称和文本都用UTF-8编码。对于自定义字体,请使用truetypefont文件,该文件的扩展名为.ttf ,我建议默认使用带有手写的字体。 REMMBER OUTFIELEPATH是目录路径,但不是文件路径, outFileName是由UUID自动生成的。
有关进一步的自定义,请编辑名为handwriter.json手动的Handwriter-Python3配置文件,默认示例在这里:
{
"text_file_path" : " ~/*.txt " ,
"font_file_path" : " ~/*.ttf " ,
"output_path" : " ~/ " ,
"background_color" : " white " ,
"background_width" : 2480 ,
"background_hight" : 3500 ,
"font_color" : " black " ,
"font_size" : 80 ,
"font_size_sigma" : 2 ,
"perturb_x_sigma" : 2 ,
"perturb_y_sigma" : 2 ,
"perturb_theta_sigma" : 0.05 ,
"line_spacing" : 80 ,
"line_spacing_sigma" : 3 ,
"word_spacing" : -30 ,
"word_spacing_sigma" : 3 ,
"left_margin" : 150 ,
"top_margin" : 150 ,
"right_margin" : 150 ,
"bottom_margin" : 150 ,
"end_chars" : " ,。》?;:’”】}、!%),.>?;:]}!%)′″℃℉ "
}所有的*_path应该是专业的。然后,通过python3 handwriter.py <configuration file path>运行handwriter.py使用参数配置文件路径。
基本类型设置参数定义在这里。为了增强文字清晰度和清晰度,始终建议使用较大的纸张尺寸( background_width , background_hight )和Big font_size 。请注意,参数line_spacing始终应大于font_size 。如果您考虑间距太大,则将其设置为负数。
- ______________________________________________________
^ | Paper ^ |
| | word_spacing | top_margin |
b | left_margin |< --- >| v |
a | < --- > |-----------------------------| - |
c | - ------------ ------------ ^ |
k | ^ | ******** | | ******** | | line_ |
g | font_ | | ** | | ** ** | | |
r | size | | ** | | ** ** | | spacing |
o | v | ** | | ******** | v |
u | - ------------ ------------ - |
n | |-----------------------------|< -------- > |
d | ------------ right_margin |
| | | ******** | |
h | | *** ** | |
i | | ** | |
g | | ** char | |
h | ------------ |
t | ^ |
| | | bottom_margin |
v | v |
- |____________________________________________________ |
|<------- background_width -------> |通常,参数font_color设置为black , background_color设置为white ,使用RGBA颜色配置文件,并可以通过专门使用颜色名称来设置颜色。另外, background_color可能是图片文件路径,在这种情况下, background_color代表背景图片文件路径,如果要使用自定义背景图像,请尝试此操作。
参数*_sigma表示随机的干扰范围,并且始终由您使用的带有手写的字体确定,始终将其更改为与您的自定义字体手动完美匹配。例如, "font_size_sigma":2表示在范围内随机干扰字符的大小font_size ± 2 。同样, "perturb_theta_sigma":0.05表示在horizontal ± 0.05范围内随机干扰字符折射半径。为了避免某些特殊字符,。》?;:'”】}、!%),.>?;:]}!%)′″℃℉ end_chars
首先,您必须下载handwriter.cpp或将其源代码复制到您的IDE。如果要使用默认字体预设,只需直接克隆手写器:
gitclone https://github.com/Unbinilium/Handwriter.git
其次,请使用配置的参数运行handwriter.cpp ,参数应遵循以下模板示例:
handwriter.cpp <TEXT PATH> <OUT PUT PATH> <FONT(1) PATH> <FONT(2) PATH> ... <FONT(n) PATH>
每个参数被空间拆分 并按照示例序列, <TEXT PATH>中的文本文件不能为空,并且<OUT PUT PATH>应包含带有int扩展名的文件名.html请小心手写器需要至少1个字体路径。
例如,我们可以使用4种自定义字体从/usr/local/example.txt模拟笔迹:
handwriter.cpp "/handwriter-master/example.txt" "/handwriter-master/example.html" "/handwriter-master/font/font1.ttf" "/handwriter-master/font/font2.otf" "/handwriter-master/font/font3.woff" "https://fonts.gstatic.com/example.woff2"
它只需将example.txt转换为example.html带有手写的字体样式,因此使用仅由浏览器确定的不同类型字体很方便。路径格式也很灵活,本地路径或URL都可以。否则,我建议默认情况下使用带有手写的字体。有关HTML标题,字体大小和保证空间等进一步的自定义,请在handwriter.cpp中编辑#define :
# define HTML_TITLE " Handwriter "
# define FONT_SIZE_MIN 21
# define FONT_SIZE_MAX 25
# define FONT_SIZE_PRECISON 0.1
# define MARGIN_MIN 5.0
# define MARGIN_MAX 5.5
# define MARGIN_PRECISION 0.01最后,双击以打开浏览器中生成的HTML ,然后用打印机,假手写打印!
当前的手作者-CPP只是一个非常简单的想法,并且在非常低的完成水平中,它实际上具有非常笨拙的算法。像您的老师一样,可以轻松地看到您的技巧。
要获得更多真正的手写生成,需要更多的自由度转换,例如水平位置,垂直位置和字体大小。每个单词的整个单词都应随机干扰,包括其中风旋转角度。还需要随机但不是暂时的随机,需要笔压的算法,NIT移动速度等。最好使用机械臂模拟笔迹而不是打印机。
我只是为了娱乐而写了这个程序,并通过练习来更深入地编码角色编码原理。显然,要使这个完美,使用C ++和HTML并不是一个好主意,请改用手工python3 。
手工作家由Umninilium撰写。所有字体预设均来自Internet,其中一些来自Hanyi的中国字体。