GdkPixbuf
-
hi,
ich versuche gerade eine PixBuf aus daten zu erzeugen ( Gdk::Pixbuf::create_from_data ). Allerdings will das nicht so wie ich will. Ich hab eine PNG-Datei im Hexeditor geöffnen und als guint8-array gespeichert. Die Pixbuf erzeuge ich jetzt so:
image.set( Gdk::Pixbuf::create_from_data( bild, Gdk::COLORSPACE_RGB, true, 8, 48, 48, 1 ) );
wobei bild das array mit den daten der png-datei ist. ich versteh den letzten parameter auch nicht. er nennt sich rowstride - wie bestimmt ich den? ich hab schon ziehmlich viele werte ausprobiert.
kann mir da jemand helfen?
danke!
-
GdkPixbuf erwartet Rohdaten.
Das was du übergibst könnte jedoch komprimiert sein. Außerdem ist noch der png-header enthalten.
Benutze doch einfach
Gdk::Pixbuf::create_from_file(const Glib::ustring &filename)
Ansonsten wird wenn ich mich recht erinnere bei Gtk ein Tool mitgeliefert, mit dem Bilddateien in ihre XPM-Repräsentation umgewandelt werden können, so dass sie in das Programm als normaler C(++)-oder eingefügt werden können.
Ansonsten geht das auch mit Bildbearbeitungsprogrammen ala Gimp.
Einfach als .xpm speichern, im Texteditor öffnen und weiter benutzen wie man möchte.Edit:
Rowstride bezeichnet - wenn ich mich richtig erinnere - Die Länge einer Pixelzeile in Bytes.
-
hi,
also ich hab das problem jetzt gelöst und zwar mit der Klasse PixbufLoader. Ich kenn die Methode create_from_file, allerdings will ich ein bild aus den bilddaten erstellen und nicht aus einer datei. die daten hab ich zu testzwecken mit dem hexeditor entnommen.trotzdem danke!