Das laden der Bilder, in der Sprache C und GTK
Ich bekomme immer ein fehlerhaftes Bild (ein rotes " X " in einem Papier, es gar nicht starten laden, die ich will, ich weiß nicht, ob dies eindeutig genug ist) und weiß nicht, warum, hier ist was ich versucht habe:
image = gtk_image_new_from_file("abc.png");
gtk_container_add (GTK_CONTAINER (window), image);
gtk_widget_show (image);
gtk_widget_show (window);`
Ich bin ein Neuling in der GUI-Programmierung, also bitte nett sein! haha
Ich vergaß zu sagen, dass dies unter windows
UPDATE: bemerkt, dass der Fehler in "gdk_pixbuf_new_from_file" es gibt mir die Fehlermeldung Wert, nicht lösen können das problem noch
wenn ich den debugger starten, es sagt "Fehler beim laden der Datei: #4 Fehler beim öffnen von Datei 'abc.jpeg': No such file or directory", sollte es in dem Ordner wo die ausführbare Datei ist? jedenfalls, wenn ich den kompletten Pfad nicht gefunden wird, ist es entweder
- Was tun Sie konkret von einem Bild unterbrochen? Ist es nicht klar, oder ist es nicht vollständig angezeigt?
- Ich denke, Sie müssen geben Sie den vollständigen Pfad zu der Datei
- ich habe schon versucht, es funktioniert nicht, entweder
- Ist es möglich, zu versuchen, die verschiedenen Bildformate?
- Versuchte ich das zu jpg, gif...
- Kannst du den vollständigen code für mich ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem (bei einigen Maschinen) dann habe ich kompiliert eine Anwendung für Windows mit einer aktuellen version von GTK+. In älteren Versionen von GTK+, oder gdk-pixbuf um genau zu sein, jedes Bild loading plugin lieferte eine Reihe von magischen Muster zu identifizieren, die das format der Datei(en), wenn diese geladen werden kann. Aber dann glib bekam eine API für die Identifizierung von Dateien, die gdk-pixbuf wurde aktualisiert, um diese stattdessen zu verwenden. Auf Windows-glib basiert auf dem system zur Identifizierung von Dateien, aber das ist es oft nicht. GTK+ nicht möglich, herauszufinden, auf welche Art von Datei es ist, und vorausgesetzt, es ist kein Lader zur Verfügung. Dies erzeugt jedoch eine Fehlermeldung in den Zeilen "no loader verfügbar" oder zumindest "Bild konnte nicht geladen werden". Aber vielleicht ist das, was Sie erhalten dann versorgen Sie den gesamten Pfad?
Ich löste das problem durch die Identifizierung der Dateitypen mich (mit code aus PCManFM) und laden das Bild mit dem Typ explicetly angegeben, mit gdk_pixbuf_loader_new_with_mime_type(). Ein wenig umständlich, aber es bekam den job zu erledigen.
Prüfen Sie, ob Sie GdkPixbuf image loader Module. In der Regel sind Sie in lib/gtk-2.0/2.10.0/Lader/- Verzeichnis. Sie sollten sehen, einige libpixbufloader-bmp.dll Dateien, eine für jede unterstützte Bild-format.
Könnte man auch versuchen, laden Bild mit:
so, dass man mehr Fehler Informationen.
Glib/Gtk sind sehr ausführlich mit Fehlern zu stdout/stderr, ist es nichts? Führen Sie das Programm unter "strace -eopen" zu sehen, welche Dateien es versucht zu öffnen? Bist du absolut sicher, das Bild ist vorhanden und lesbar durch den Prozess?