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