Bild öffnen und drehen

B

buli_1986

Grünschnabel
Servus,

ich habe ein Paar fragen bezüglich pnmrotate (ppmrotate) und zu pamtogif.

Ich muss eine Aufgabe bearbeiten, dabei handelt es sich um diese:

Lesen Sie eine JPG-Datei ein, Größe mindestens 200x200.
Drehen Sie die Datei um 90 Grad im Uhrzeigersinn.
Invertieren Sie die Farben, also erzeugen Sie ein Negativbild.
Schreiben Sie das Ergebnis als GIF-Datei "out.gif".

Dies soll ich mit C umsetzen und dabei die entsprechende unix Befehle einbinden.

Ich hab schon recherschiert und dabei rausgefunden, wie man eine JPG-Datei in ein Format umwandelt, mit dem es Sinn macht, die Bilddatei zu drehen und zu invertieren. (system("jpegtopnm Bild.jpg > foo.ppm");
Also die PPM Datei. Ich hoffe die sagt euch was.

Ich habe dabei euch rausgefunde, wie man das Bild drehen kann und zwar mit der Funktion pnmrotate (pnmrotate [-noantialias] [-background=color] angle [pnmfile])

Wenn die datei dann gedreht ist, soll sie als gif gespeichert werden. dies hab ich so gemacht:

system("$ppmtogif -alpha=myalpha.pgm foo.ppm >myoutput.gif");
dabei sagt er mir:
-bash: pamtogif: command not found
-bash: -tupletype=RGB_ALPHA: command not found


Meine Schwierigkeit liegt im mittleren Teil. Ich bekomme nicht ganz heraus, wie ich dann die foo.ppm öffnen muss (mit fopen komme ich nicht weiter), damit ich sie drehen kann.

Vielleicht kann mir jemand weiter helfen. Ich würde mich freuen, wenn jemand Tipps hat.

Vielen Dank
 
Du bist da bissi ganz auf den falschen weg, mit system("~") führst du einen bash befehl aus, das ist ganz und gar nicht C. Aber wenns reicht installier dir "ppmtogif" nach.

Typischerweise würde man das wohl mit imagemagick machen.
 
mmh, ich glaub nicht, dass ich es mit imagemagick realisieren darf.

hab noch einen zusatz an Informationen

....Schreiben Sie ein eigenes Programm zur Invertierung.
Die übrigen Teile der Aufgabe können Sie mit fertigen Programmen aus der NETPBM-Bibliothek realisieren. Hinweis: jpegtopnm oder djpeg.
Damit ersparen Sie sich z.B. das Einlesen und Interpretieren von JPG-Dateien.
Wenn Sie externe Programme verwenden, binden Sie sie mit system() oder popen() in Ihr C-Programm ein. Der Name der Eingabedatei soll als Kommandozeilenargument übergeben werden.
 
Lustige Aufgabenstellung :-) Keiner Hinweis: Dein Post passt irgendwie nicht, du rufst ppmtogif auf und in der Fehlermeldung steht pamtogif?
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Ah gerade gesehen, ich würde tippen dein $ppmtogif ist falsch gefüllt.
 
Zuletzt bearbeitet:
der interpretiet des ppmtogif als pamtogif. von dem her die Fehlermeldung.
Das ppm Format hab ich gewählt, weil pam nur schwarz weiß bilder darstellen kann (meines wissens nach).

ich kann ja noch einmal die ganze Aufgabe posten:

esen Sie eine JPG-Datei ein, Größe mindestens 200x200.
Drehen Sie die Datei um 90 Grad im Uhrzeigersinn.
Invertieren Sie die Farben, also erzeugen Sie ein Negativbild.
Schreiben Sie das Ergebnis als GIF-Datei "out.gif".
Schreiben Sie ein eigenes Programm zur Invertierung.
Die übrigen Teile der Aufgabe können Sie mit fertigen Programmen aus der NETPBM-Bibliothek realisieren. Hinweis: jpegtopnm oder djpeg.
Damit ersparen Sie sich z.B. das Einlesen und Interpretieren von JPG-Dateien.
Wenn Sie externe Programme verwenden, binden Sie sie mit system() oder popen() in Ihr C-Programm ein. Der Name der Eingabedatei soll als Kommandozeilenargument übergeben werden.
 
Dann such dir einen datentyp, den du leicht manipulieren kannst, dreh das jpeg mit den commandline tools die du hast, lies es ein, pick dir die farbwerte raus, invertier sie, schreibs raus und wandels in eine gif um.

Die Api von der netpbm bibliothek wirst du dir schon selber anschauen müssen.
 

Ähnliche Themen

Jaunty + Zend + Gdata + xampp

Open-Xchange auf OpenSuse mit Commu. Installer - Compiler Fehler

root-passwort wird nicht geupdated und anderes

Zurück
Oben