gpt4 book ai didi

python - 有没有办法在Python中的图像上写阿拉伯文字

转载 作者:行者123 更新时间:2023-12-03 08:37:15 24 4
gpt4 key购买 nike

我曾经看到很多程序都可以渲染阿拉伯语文本,没有任何错误,但是当涉及到 python 时,我只知道一个库(arabic_reshaper),而且它还不够高效,因为它包含错误,所以我想知道是否有任何方法(例如 api)或某种扭曲的有效方法来完成此任务?

最佳答案

您可以在没有 arabic_reshaper 的情况下使用 Pillow。

首先,您的路径上需要有libraqm。 Raqm 库封装了复杂文本布局的逻辑并提供了方便的 API。 libraqm 依赖于以下库:FreeType、HarfBuzz、FriBiDi,如果系统中没有提供软件包,请确保在安装 libraqm 之前安装它们。

如果您使用 Macos,您可以使用 Homebrew 安装 libraqm

brew install libraqm

自版本 8.2.0 起的枕轮包括 libraqm 的修改版本,如果安装了 libfribidi,它会在运行时加载 libfribidi。.text 函数将方向参数传递给libraqm 库,它使 Pillow 能够支持双向文本(使用 FriBiDi)、整形(使用 HarfBuzz)以及正确的脚本逐项。

此外,您还需要一种适合您想要书写的语言的字体,例如作为阿拉伯字体。

import os

from PIL import Image, ImageDraw, ImageFont


def main():
image = Image.open(os.path.join(os.path.dirname(__file__), "nature.jpeg"))
font = ImageFont.truetype(
os.path.join(
os.path.dirname(__file__), "vazir-font-v28.0.0", "Vazir-Regular.ttf"
),
100,
)
text = "طبیعت زیبای دوست داشتنی"
canvas = ImageDraw.Draw(image)
canvas.text((0, 0), text, (255, 255, 255), font=font, direction="rtl")
image.save(os.path.join(os.path.dirname(__file__), "result.jpg"))

if __name__ == '__main__':
main()

关于python - 有没有办法在Python中的图像上写阿拉伯文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63543391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com