#python #opengl #kivy
#python #opengl #kivy
Вопрос:
Я хочу иметь возможность это сделать:
#Reference widget
my_widget = self.ids.my_widget_kv
#Extract texture or graphics
drawing = my_widget.texture (or something that works)
#TODO convert to drawing .png in binary
#TODO edit in PIL
ЗАДАЧА сохранить или прикрепить к электронной почте
На данный момент я получаю my_widget.texture как None, а my_widget.canvas как объект canvas.
Я хочу извлечь виджеты как есть и преобразовать их в .png для прикрепления к электронной почте или редактирования.
timestr = time.strftime("%Y%m%d_%H%M%S")
self.ids.export_to_png("IMG_{}.png".format(timestr))
Этот код сохраняет внешний вид drawing_zone в хранилище. Я не могу отредактировать его на некоторых промежуточных этапах.
Ответ №1:
Если вы просто откроете и прочитаете файл PNG, вы получите байты, которыми затем сможете манипулировать по своему вкусу.
canvas_png = open("IMG.png","r b").read()
canvas_data = (canvas_png.getvalue())
print(canvas_data)
Вы должны увидеть «двоичный файл», который вам нужен, сохраненный в этой переменной.
Комментарии:
1. Спасибо за ваш ответ. Я хотел бы пропустить часть сохранения и преобразовать ее в .png в памяти, чтобы использовать ее немедленно. export_to_png вызывает некоторые методы виджета, которые выдают ошибки, если я вызываю их напрямую.
2. Существует способ сохранить его в памяти (я думаю, что это метод python). Я посмотрю на вас, когда у меня будет возможность. Есть причина, по которой вы не можете его сохранить? Он должен храниться в переменной (в любом случае, в памяти)