#python #image #kivy #binary-data
Вопрос:
У меня есть несколько фотографий значков, двоичная форма которых хранится в базе данных . теперь у меня есть несколько подходов:
Чтобы извлечь двоичные данные из базы данных и скрыть их в файле png или jpeg и сохранить на устройстве пользователя
или
Для непосредственного использования двоичных данных без их хранения на устройстве пользователя
Я предпочитаю второе . но проблема в том, что виджетам kivy, таким как MDIcon или FloatButtton, нужна строка адреса, а не двоичные данные, поэтому их способ решить эту проблему .
И, пожалуйста, дайте мне знать, если это лучший способ решения этой проблемы.
Комментарии:
1. Нам нужно немного больше информации. Например, где находятся эти двоичные данные, в какой формат вы хотите их преобразовать, какой модуль вы планируете использовать для этого и т. Д.
2. Прости, брат. Во-первых, я читаю изображение, используя метод чтения файла. Затем я сохраняю двоичные данные, полученные в таблице mysql. Тогда мой план состоит в том, чтобы использовать данные из таблицы и напрямую использовать их в киви. Но у меня нет идеи, как это сделать.
3. Кроме того , я также преобразовал двоичные данные в изображение с помощью модулей изображений bytesio и kivy coreimage. Но проблема заключалась в том, что я должен хранить файл на устройстве пользователя, которое мне не нужно. Так что любая лучшая идея или любой способ использовать двоичные данные непосредственно в виджетах kivy, таких как MdIcon
4. Не беспокойтесь! Вы сказали, что пробовали Байтезио. С помощью BytesIO вам не нужно хранить файл на самом диске. Хотите, чтобы я опубликовал пример?
5. да, братан, не могли бы вы, пожалуйста, опубликовать пример.. sry за поздний ответ
Ответ №1:
Вы можете конвертировать изображение, не сохраняя его на диске, как это.
from io import BytesIO
def convertToJpeg(img):
with BytesIO() as f:
img.save(f, format='JPEG')
return f.getvalue()
Комментарии:
1. спасибо, брат, но еще одна помощь, не могли бы вы, пожалуйста, дать некоторое объяснение этой функции ?