DearPyGUI путь к файлам с кирилицей

Есть необходимость отображать картинку в интерфейсе. Проблема возникает если в пути к картинке используется кириллица, тогда load_image() выплёвывает None.

    def add_image(self, path, width: int = 200, height: int = 100):
        img = load_image(os.path.abspath(path))
        if img is None:
            print(path, 'Не загруженно')
            return
        tag = os.path.split(path)[1]
        with texture_registry(show=True):
            add_static_texture(tag='texture_{tag}', width=img[0], height=img[1], default_value=img[3])
        add_image(texture_tag=f"texture_{tag}", parent="image_board", width=width, height=height)

Ответы (2 шт):

Автор решения: Timplay

Не совсем понятно что за функция load_image. Скорее всего дело в том что dearpygui не поддерживает кириллицу из коробки. Вот вопрос схожий и его решение - Dear pygui поддержка кириллицы

→ Ссылка
Автор решения: Uranus

Это известный баг в библиотеке: функция load_image не работает, если путь к файлу содержит не ASCII символы. Ошибка все еще остается открытой (на 20 января 2025 года): STB to support UTF-8, it needs to be built with the STBI_WINDOWS_UTF8 define.

Временное решение

Можно заменить встроенную функцию load_picture, реализовав свою версию:

def load_image(path):
    import numpy as np
    from PIL import Image
    
    try:
        image = Image.open(path)
        image = image.convert("RGBA")  # Убеждаемся, что изображение в формате RGBA
        width, height = image.size
        data = np.array(image, dtype=np.float32) / 255.0  # Нормализация в диапазон [0, 1]
        return width, height, 4, data  # Формат, совместимый с DearPyGUI
    except Exception as e:
        print(f"Ошибка загрузки изображения: {e}")
        return None
→ Ссылка