next up previous contents
Next: Datenmodell Schnittstelle Up: No Title Previous: Entwicklung einer Beispielscene

Datenformat der Bilder

Wenn man den Button Speichern   angeklickt, werden die Pixeldaten des Bildes in eine Datei geschrieben. Dafür wird ein extra Puffer im Programm verwaltet. Würde man die X- Pixmap verwenden, würe die Qualität von dem jeweiligen Bildschirm abhängig. Da dies nicht sein soll, wurde im Hauptspeicher ein extra Puffer für die Bilddaten ausgefaßt, mit folgender Struktur:

typedef uns char byte;
class cbyte
{
 public:
  byte r, g, b;
};

cbyte *cbuff;

Dies sind also 24 Bit je Bildpunkt. Es wurde mit Absicht kein vorhandenes True-Color-Format verwendet, so können die Daten gleich als Stream schnell in den Speicher gelesen werden:

  fread(cbuff, sizeof(cbyte), anzahl, D);

die Datei hat folgendes Format:

 4 unsigned short: x1 y1 x2 y2 
 x cbytes

x1 y1 x2 y2 definieren den Bildausschnitt auf der X-Achse von x1 bis x2 und auf der Y-Achse von y1 bis y2. Die Anzahl der Pixel errechnet sich wie folgt:

Anzahl = (x2 - x1 +1) * (y2 - y1 +1)

Dann folgen Anzahl viele Pixel. Durch die Angabe mit x1 bis x2 und y1 bis y2 kann mit mehreren Programmen an einem Bild gerechnet werden, und mit einem speziellen Programm kann das Bild zusammengesetzt werden.

Dieses Format eignet sich nicht für das Anzeigen mit einem anderen Programm. Hier kann eine Konvertierung mit dem Programm rp2gif vorgenommen werden.

Für das spätere Ausdrucken könnte in das Programm rp2gif noch eine Ausgabe im Postscriptformat eingebaut werden.

Zum Konvertieren und Anzeigen der Ausgabefiles wird das Programm rp2gif oder rp2ppm in der Kommandozeile aufgerufen. Die Kommandosyntax ist wie folgt:

 

  1. Anzeige der Ray Ausgabedatei
     
    		rp2gif -srp name.rp
  2. Anzeige der Gif Datei
     
    		rp2gif -sgif name.gif
  3. Konvertiert von name.rp nach name.gif
     
    		rp2gif name.rp
  4. Konvertiert von name.rp nach name.ppm
     
    		rp2ppm name.rp

Ohne Parameter wird eine Anzeige des Bildes ausgegeben.



Helmut Fahrion
Sun Apr 13 15:58:19 GMT 1997