Масштабируйте изображение в GTK

Одно эмпирическое правило состоит в том, чтобы использовать исключения в случае чего-то, что Вы не могли обычно предсказывать. Примерами является возможность соединения базы данных, недостающий файл на диске, и т.д. Для сценариев, которые можно предсказать, т.е. пользователи, пытающиеся входить в систему с неверным паролем, необходимо использовать функции, которые возвращают булевские переменные и знают, как обработать ситуацию корректно. Вы не хотите резко заканчивать выполнение путем выдачи исключения просто, потому что кто-то ввел их пароль с опечаткой.

17
задан Claudiu 12 August 2009 в 23:44
поделиться

2 ответа

Загрузите изображение из файла с помощью gtk.gdk.Pixbuf для этого:

import gtk
pixbuf = gtk.gdk.pixbuf_new_from_file('/path/to/the/image.png')

затем масштабируйте его:

pixbuf = pixbuf.scale_simple(width, height, gtk.gdk.INTERP_BILINEAR)

Затем, если вы хотите использовать его в gtk.Image, создайте контейнер виджет и установите изображение из pixbuf.

image = gtk.Image()
image.set_from_pixbuf(pixbuf)

Или, может быть, напрямую:

image = gtk.image_new_from_pixbuf(pixbuf)
22
ответ дан 30 November 2019 в 12:27
поделиться

Это могло бы быть более эффективным просто масштабировать их перед загрузкой. Я особенно так думаю, так как я использую эти функции для загрузки миниатюр 96x96 иногда из очень больших JPEG-файлов, но при этом очень быстро.

gtk.gdk.pixbuf_new_from_file_at_scale(..)
gtk.gdk.pixbuf_new_from_file_at_size(..)
7
ответ дан 30 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: