先说问题
生成是这样的
实际是这样的
ကကြီး
看了作者源码后修改之后把问题解决了,作者绘制每一个char而不是整个string
在 computer_text_generator.py 文件中
_generate_horizontal_text 函数和 _generate_vertical_text 函数
把
for i, p in enumerate(splitted_text):
txt_img_draw.text(
(sum(piece_widths[0:i]) + i * character_spacing * int(not word_split), 0),
p,
fill=fill,
font=image_font,
stroke_width=stroke_width,
stroke_fill=stroke_fill,
)
txt_mask_draw.text(
(sum(piece_widths[0:i]) + i * character_spacing * int(not word_split), 0),
p,
fill=((i + 1) // (255 * 255), (i + 1) // 255, (i + 1) % 255),
font=image_font,
stroke_width=stroke_width,
stroke_fill=stroke_fill,
)
替换为
txt_img_draw.text(
(0, 0),
splitted_text,
fill=fill,
font=image_font,
stroke_width=stroke_width,
stroke_fill=stroke_fill,
#language="my"
)
txt_mask_draw.text(
(0, 0),
splitted_text,
fill=(255, 255, 255),
font=image_font,
stroke_width=stroke_width,
stroke_fill=stroke_fill,
#language="my"
)
另外,如果发现生成的图片和标签不一致,很有可能是字体的原因
fd 是指定字体文件夹,生成的图片什么字体都有
# -fd
# .\fonts\my
这个是指定字体
# -ft
# ./fonts/my/Pyidaungsu.ttf
如果还不行,可以在代码里面添加txt_mask_draw.text 方法中添加 language 参数
各国语言对应的代码是xml 版本的
我们可以打开一个网页,然后查看网页源代码,我是缅甸语可以去这个网站အမျိုးသားညီညွတ်ရေးအစိုးရ (NUG) (nugmyanmar.org)
如果使用了language 参数会提示让你安装Libraqm,按照下面这个方法安装
python - Installing Raqm (Libraqm) Windows 10 - Stack Overflow
这是“here”的链接
Archived: Python Extension Packages for Windows - Christoph Gohlke (uci.edu)
我多次部署发现缅甸语印地语等就是要装这个库
缅甸语字体下载
Myanmar Fonts: Unicode, Zawgyi, Pyi Daung Su Download (myanmarhouse.com.mm)