En GTK, ¿cómo puedo escalar una imagen? En este momento, cargo imágenes con PIL y las escaloo de antemano, pero ¿hay alguna manera de hacerlo con GTK?Escalar una imagen en GTK
13
A
Respuesta
15
cargar la imagen desde un archivo usando gtk.gdk.Pixbuf para ello:
import gtk
pixbuf = gtk.gdk.pixbuf_new_from_file('/path/to/the/image.png')
continuación escala que:
pixbuf = pixbuf.scale_simple(width, height, gtk.gdk.INTERP_BILINEAR)
Entonces, si desea utilizarlo en un gtk.Image, carga el widget y configura la imagen desde el pixbuf.
image = gkt.Image()
image.set_from_pixbuf(pixbuf)
O tal vez de una manera directa:
image = gtk.image_new_from_pixbuf(pixbuf)
6
Podría ser más eficaz simplemente para ampliar su escala antes de la carga. Especialmente lo pienso desde que utilizo estas funciones para cargar miniaturas de 96x96 desde archivos JPEG a veces muy grandes, aún muy rápido.
gtk.gdk.pixbuf_new_from_file_at_scale(..)
gtk.gdk.pixbuf_new_from_file_at_size(..)
1
Escale la imagen de la URL. (scale reference)
import pygtk
pygtk.require('2.0')
import gtk
import urllib2
class MainWin:
def destroy(self, widget, data=None):
print "destroy signal occurred"
gtk.main_quit()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect("destroy", self.destroy)
self.window.set_border_width(10)
self.image=gtk.Image()
self.response=urllib2.urlopen(
'http://192.168.1.11/video/1024x768.jpeg')
self.loader=gtk.gdk.PixbufLoader()
self.loader.set_size(200, 100)
#### works but throwing: glib.GError: Unrecognized image file format
self.loader.write(self.response.read())
self.loader.close()
self.image.set_from_pixbuf(self.loader.get_pixbuf())
self.window.add(self.image)
self.image.show()
self.window.show()
def main(self):
gtk.main()
if __name__ == "__main__":
MainWin().main()
* EDIT: (hacer ejercicio fix) *
try:
self.loader=gtk.gdk.PixbufLoader()
self.loader.set_size(200, 100)
# ignore tihs:
# glib.GError: Unrecognized image file format
self.loader.write(self.response.read())
self.loader.close()
self.image.set_from_pixbuf(self.loader.get_pixbuf())
except Exception, err:
print err
pass
Cuestiones relacionadas
- 1. Escalar una imagen en GWT
- 2. JSP ¿Cómo escalar una imagen?
- 3. Mostrar imagen sin gtk
- 4. escalar una imagen, pero mantener sus proporciones
- 5. Cómo escalar píxeles en una imagen para ajustar el brillo?
- 6. Cómo escalar una imagen en iOS, suavizada pero no suave?
- 7. Android cómo escalar una imagen con las opciones de BitmapFactory
- 8. ¿Cómo escalar una imagen a pantalla completa usando JavaScript?
- 9. Imagen de fondo borrosa al escalar en iPad e iPhone
- 10. Creación de gráficos en Gtk/Gtk #
- 11. Hacer una etiqueta en negrita en GTK +
- 12. Cómo escalar píxeles en pantalla?
- 13. Cómo escalar ejes en mplot3d
- 14. Escalar un SVG en Java
- 15. Convertir la imagen de PIL a GTK Pixbuf
- 16. Atajos múltiples para una acción en GTK
- 17. Desplazamiento por arrastre en una aplicación GTK +
- 18. Escalar y Traducir animación
- 19. ¿Cuál es la forma más rápida de dibujar una imagen en Gtk +?
- 20. ImageMagick cambiar la relación de aspecto sin escalar la imagen
- 21. Multiplicar una tupla por un escalar
- 22. Implementar aplicaciones GTK Sharp en Windows sin instalar GTK #
- 23. ¿Cómo agregar hacer clic y arrastrar para escalar una imagen en un SVG?
- 24. Cómo escalar una imagen GIF animada en PIL y conservar la animación
- 25. Cómo escalar una imagen en ImageView para mantener la relación de aspecto
- 26. pasando una referencia escalar en Perl
- 27. Cómo escalar buildbot en una compañía
- 28. Escalar una aplicación Meteor en Heroku
- 29. ¿Puedo escalar una vista en Android?
- 30. Gráfico basado en GTK +?
Podemos tener esta solución en C también .... busco el mismo material, pero en C y GTK + .... Usando GtkImage * image = gtk_image_new_from_file() – User7723337