Übungen zum Softwarepraktikum SS 2005:
Abgabe der Lösungen bis Montag abend (02.05.2005) 18.00 Uhr per
E-Mail:
Gruppe Sound-Memory:
janis.fehr@gmx.de
Gruppe Computer Grafik: shamoha@mac.com
Achtung: gebt bitte in jedem File Euren Namen im Kommentar an (für die Korrektur).
Es soll eine Farbbildklasse SimpleRGBImage implementiert werden, die einfache Operationen ermöglicht. Die Schnittstellen der Methoden sind vorgegeben und beschrieben im unvollständigen Headerfile SimpleRGBImage_incomplete.hh. Dieses ist zu erweitern, indem die Datenstrukturen, die das Bild repräsentieren, eingefügt werden. Die entsprechenden Files (.cc,.icc) einschließlich Testprogramm testSimpleRGBImage.cc. Als Basis soll die Farbpixel-Klasse aus Aufgabe 1 dienen, indem das Bild als eindimensionales Feld aus RGBColors repräsentiert wird.
Schreiben Sie ein Testprogramm (testSimpleRGBImage.cc) welches die Funktionalitäten der SimpleRGBImage-Klasse testet. Schreiben Sie SimpleRGBImage.icc, sowie SimpleRGBImage.cc mit "Dummy" Funktionen, so das der Compiliervorgang fehlerfrei durchläuft.
Implementieren Sie ...
Read(...)- und Write(...)-Methoden zum Einlesen und Abspeichern vom ppm Bilddateien. (siehe Folien C++ Kurs1)
Optimieren Sie den Pixelzugriff, indem Sie die Pointer auf die Zeilenanfänge speichern. (siehe Folien C++ Kurs2)
P3 320 200 255 0 0 0 0 0 0 0 0 1 2 3 4 5 0 0 0 ...P3 zeigt den ppm-Typ an: P3 ascii ppm, P5 raw ppm.
man ppmin einer Shell. Dabei soll das ppm-Ascii (P6) Format verwendet werden.
#include <iostream> #include <iomanip> std::istream& eatWsAndComments( std::istream& s) { s >> std::ws; // eat whitespaces while( s.peek() == '#') { s.ignore( 10000, '\n'); // ignore characters until line end s >> std::ws; // eat whitespaces } return s; } |