Comment utiliser GDK avec Quickly

J’essaie d’utiliser la bibliothèque gdk pour réduire une image et l’appliquer à une image Gdk.

C’est le code pixbuf = Gdk.pixbuf_new_from_file(fileName) pixbuf = pixbuf.scale_simple(100, 100, Gdk.INTERP_BILINEAR)

Le problème est que python ne peut pas trouver Gdk même si j’utilise tout en minuscule

Erreur: pixbuf = Gdk.pixbuf_new_from_file (NomFichier) NameError: le nom global ‘Gdk’ n’est pas défini.

Je ne sais pas ce que je devrais faire car j’ai essayé d’importer Gdk mais rien n’a changé

Essayez de l’importer comme ceci:

  from gi.repository import Gtk from gi.repository.GdkPixbuf import Pixbuf, InterpType 

puis:

  pixbuf = Pixbuf.new_from_file(filename) pixbuf = pixbuf.scale_simple(100, 100, InterpType.BILINEAR) 

Je vous recommande d’utiliser la commande ci-dessous, car il la redimensionne automatiquement à la lecture. Spécifiez simplement la taille (en pixels) de l’image souhaitée:

  pixbuf = Pixbuf.new_from_file_at_size(size_x, size_y, filename) 
  • L’utilisation de scale_simple () ne préserve pas les proportions.
  • L’utilisation de new_from_file_at_size () préserve les proportions

J’ai eu le même problème. Votre réponse a presque fonctionné pour moi, mais j’ai eu le message d’erreur suivant:

 AtsortingbuteError: 'gi.repository.Gdk' object has no atsortingbute 'INTERP_BILINEAR' 

Mais j’en ai trouvé la définition ici gtkmm: gdkmm Enums and Flags :

 Gdk::InterpType { Gdk::INTERP_NEAREST, Gdk::INTERP_TILES, Gdk::INTERP_BILINEAR, Gdk::INTERP_HYPER } 

Donc pour moi ça a marché quand j’ai appelé la fonction comme ceci:

 from gi.repository import Gtk, Gdk from gi.repository.GdkPixbuf import Pixbuf ... pixbuf = Pixbuf.new_from_file('mypic.gif') pixbuf = pixbuf.scale_simple(desired_width, desired_height, 2) # 2 := BILINEAR 

… Peut-être que cela aide quelqu’un avec le même problème;)