首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不识别Mac上Libraqm安装的枕头

不识别Mac上Libraqm安装的枕头
EN

Stack Overflow用户
提问于 2022-11-29 01:15:39
回答 2查看 35关注 0票数 2

我需要能够在python中呈现不同字体的文本,并使用各种使用变量替换字符(阿拉伯语、印地语、孟加拉语)的书写系统。在以前的一台机器上,我这样做没有问题,但我刚搬到一台新机器上,使用相同的conda环境,它无法工作。

Mac 12.6 Python版本3.9.13 Libraqm版本0.9.0 (与brew一起安装)枕头版本9.2.0 (随pip安装)

下面是一个最小的可重复的例子。它应该生成乌尔都语单词لڑكا--这两组字母都附在لڑكا之后,而是产生了类似于اکڑل的东西,每个字母都断开了连接。它正确地呈现了特定的字体,所以它不是没有找到字体的问题。当我运行最后几行代码检查'raqm‘功能时,我就会出错。

代码语言:javascript
运行
复制
from PIL import ImageFont
from PIL import ImageDraw
from PIL import Image

font = ImageFont.truetype('KawkabMono-Bold.ttf',12,layout_engine=ImageFont.Layout.RAQM)

img = Image.new('1', (200, 100), 'white')
d = ImageDraw.Draw(img)
d.text((100,50), 'لڑكا', fill='black', font=font)

img.save('test.png')

from PIL import features
features.check_feature(feature='raqm')

我尝试过安装和重新安装几次,并从不同的来源构建。我的猜测是libraqm不是在枕头的正确路径上,但我不知道如何检查或修复它。

我试着运行最小可再现的文本,并期望看到一个正确的渲染,RTL文本与正确的文本呈现。相反,我得到了一个图像文件的文本呈现左向右和断开连接.

EN

回答 2

Stack Overflow用户

发布于 2022-11-29 03:30:18

在MacOS12.6.1和Python3.10.8系统解释器上,我能够让libraqm与Pillow一起工作。配置如下:

  1. Python解释器版本10.8,随Homebrew一起安装。
  2. Libraqm版本0.9.0安装了Homebrew。
  3. 枕头版本9.3.0安装了pip。

首先,我尝试使用python,然后得到了UserWarning: Raqm layout was requested, but Raqm is not available. Falling back to basic layout.

接下来,我在您发布的代码中添加了以下内容:print(features.check("raqm"))并按预期打印False。

我使用了我的Python系统解释器(3.10.8),安装了Pillow,并且我能够用Pillow加载libraqm。

无libraqm图像图像与libraqm

我添加了一个字体目录,并在上面的代码段中指定了字体。我用以下代码加载了字体:

代码语言:javascript
运行
复制
features.check_feature(feature='raqm')
print(features.check("raqm"))
custom_font = os.path.abspath(
    os.path.join(
        os.path.dirname(__file__), 'fonts/KawkabMono-Bold.ttf'
    )
)

如果python解释器没有加载library you库,那么您的输出将像您描述的那样(单个字符)。

票数 0
EN

Stack Overflow用户

发布于 2022-11-30 12:55:07

我认为您还需要在PIL/Pillow之前安装fribidiharfbuzz

代码语言:javascript
运行
复制
brew install fribidi harfbuzz

请注意,您可以通过以下方式获得PIL/Pillow的配置、构建设置、特性和支持的格式:

代码语言:javascript
运行
复制
python3 -m PIL
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74608140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档