Gtk1.2 pixmap in Datei speichern



  • Hallo.
    Kennt jemand einen Weg ein GdkPixmap in Datei zu speichern ?
    In gtk2.0 gehts mit dem GdkPixbuf, aber gtk1.2 ? gibt es da vielleicht einen Umweg?

    Wäre sehr dankbar für jeglichen Lösungsansatz.



  • Du kannst recht leicht Bilder als .ppm speichern.

    FILE *pFile;
      char pszFilename = "bild.ppm";
      int  y;
      int width;
      int height;
      int linesize;
      char *data; 
    
      width = [Breite des Bildes];
      height = [Höhe des Bildes];
      data = [Pointer zu den Bilddaten im RGB format];
    
      linesize = width * 3;
    
      // Open file
      pFile=fopen(pszFilename, "wb");
      if(pFile==NULL)
        return;
    
      // Write header
      fprintf(pFile, "P6 %d %d 255\n", width, height);
    
      // Write pixel data
      for(y=0; y<height; y++)
        fwrite(data[0]+y*linesize, 1, linesize, pFile);
    
      // Close file
      fclose(pFile);
    

    Ich hoffe mal, ich hab keinen Fehler beim umschreiben gemacht. Ist nen altes Testprogramm von mir gewesen.



  • Danke für die Antwort und die Mühe ProgChild.
    Aber ich furchte dass es mit GdkPixmap so nicht funltionieren wird.
    Informationen darüber wie GdkPixmap intern aufgebaut ist konnte ich nirgends finden. Aber ein einfaches Array mit RGB werten ist es wohl nicht. Der Versuch es so zu machen, wie du es vorgeschlagen hast, endet besten falls damit dass ein Programmteil in Datei gespeichert wird.

    Ich habe aber mittlerweile eine Lösung mit gdlib und gdk_image zusammengebastelt.
    Ist zwar nicht das schnellste aber es funktioniert.


Anmelden zum Antworten