Python Gtk3 GtkImage - PullRequest
       12

Python Gtk3 GtkImage

0 голосов
/ 09 марта 2019

Я долго искал, но безуспешно. В моем маленьком приложении на python3.6 я читаю изображение из базы данных sqlite и записываю его в файл png

cur = self.con.cursor()
cur.execute('SELECT image FROM image WHERE id IS ?', str(uid))
image = cur.fetchone()[0]
fout = open('temp.png', 'wb')
fout.write(image)
fout.close()

только для чтения обратно для отображения с помощью

self.preview.set_from_file('temp.png')

, где превью - GtkImage, созданный с помощью

self.preview = builder.get_object('preview')

Есть ли способ пропустить запись на диск? Я бы очень хотел, чтобы изображение отображалось прямо из БД.

Заранее спасибо.

1 Ответ

1 голос
/ 10 марта 2019

Gtk.Image имеет два метода, которые могут быть интересны. Это set_from_pixbuf и set_from_surface .

Если вы выберете surface -way, вам может понадобиться установить pycairo , поскольку он не поставляется с python3-gi. Чтобы создать поверхность, вы выбираете свое изображение и используете create_for_data .

Возможно, pixbuf -путь проще. Посмотрите на этот ответ, чтобы увидеть, как GdkPixbufLoader создает GdkPixbuf из данных.

...