После прочтения большей части документации Pillow, переполнения стека и Интернета, я не смог расшифровать это сообщение об ошибке, которое выбрасывает мое приложение. Моя текущая настройка:
Ниже приведен проверяемый пример того, над чем я работал. По сути, моя ошибка происходит, когда я использую title_font
вместо того, где я использую default_font
. Подчеркнуто 2 комментариями о том, что # TODO Aborts with error unless using default_font TODO
.
from PIL import ImageFont, ImageDraw, Image
def app():
# Default Font with static size and font type
default_font = ImageFont.load_default()
# TODO Title Font that is the desired use
title_font = ImageFont.truetype(font="~/Library/Fonts/Verdana.ttf", size=36)
# Background Image to draw text on
bg_img = Image.new(mode = "RGBA",size = (3480,2160), color="Green")
# Creates an object that can be used to draw in the given image.
d = ImageDraw.Draw(bg_img)
txt = "Hello World"
# TODO: Aborts with error unless using default_font TODO
# Returns (width, height) of text in pixels with designated font
txt_width, txt_height = default_font.getsize(txt)
print(f"Text Width:{txt_width} Text Height: {txt_height}")
# TODO: Aborts with error unless using default_font TODO
# Draws "Hello World" onto background image
d.text((10,60), text=txt, font=default_font, fill=(255,255,255,255))
# Pop Up window
bg_img.show()
Ниже приведено сообщение об ошибке , которое я получаю от обоих методов ImageDraw / ImageFont:
>>> app()
dyld: lazy symbol binding failed: Symbol not found: _hb_language_get_default
Referenced from: /usr/local/lib/libraqm.dylib
Expected in: flat namespace
dyld: Symbol not found: _hb_language_get_default
Referenced from: /usr/local/lib/libraqm.dylib
Expected in: flat namespace
Я уже пробовал:
- Чтобы изменить путь, используемый для пользовательского шрифта, и перейти на другой метод загрузки шрифта (например, ImageFont.load (имя файла) , ImageFont.load_path (имя файла) .
- Чтобы согласиться с
ImageFont.load_default()
, но, как вы могли бы сказать, запустив его, шрифт по умолчанию очень маленький, и нет никакого способа изменить его размер или style.
Последняя вещь, в которой я не был уверен, была эта строка в руководстве по установке, которая рекомендована после brew install
пакетов Подушка зависит от: Тогда смотрите figure / install_raqm_cmake. sh для установки libraqm. Можно найти здесь на полпути через раздел Построение на macOS . У меня есть ноющее чувство, что это может быть причиной, но Я просто не понимаю, какого действия он хочет, м е взять.
Долгое время скрывался, впервые постер. Спасибо за любую помощь сейчас и всю помощь, оказанную мне за эти годы!
ОБНОВЛЕНИЕ: Использовал мой пример на другом MacBook, и он отлично работает. Я собираюсь сбросить тот, на котором он не работал, и собрать его с нуля. Спасибо за вашу помощь!