Bild öffnen und drehen

Dieses Thema im Forum "C/C++" wurde erstellt von buli_1986, 21.06.2010.

  1. #1 buli_1986, 21.06.2010
    buli_1986

    buli_1986 Grünschnabel

    Dabei seit:
    21.06.2010
    Beiträge:
    3
    Zustimmungen:
    0
    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
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 marcellus, 21.06.2010
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    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.
     
  4. #3 buli_1986, 21.06.2010
    buli_1986

    buli_1986 Grünschnabel

    Dabei seit:
    21.06.2010
    Beiträge:
    3
    Zustimmungen:
    0
    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.
     
  5. #4 saeckereier, 21.06.2010
    Zuletzt bearbeitet: 21.06.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    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.
     
  6. #5 buli_1986, 21.06.2010
    buli_1986

    buli_1986 Grünschnabel

    Dabei seit:
    21.06.2010
    Beiträge:
    3
    Zustimmungen:
    0
    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.
     
  7. #6 marcellus, 22.06.2010
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    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.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: Bild öffnen und drehen
Besucher kamen mit folgenden Suchen
  1. C code bilder drehen

Die Seite wird geladen...

Bild öffnen und drehen - Ähnliche Themen

  1. Keine Benachrichtigungen im Vollbild Modus

    Keine Benachrichtigungen im Vollbild Modus: Arch Linux Plasma 5.8 Weiss einer ob das gehen sollte, bzw kann mal einer testen ob es bei ihm geht, gerne auch mit anderen kde/plasma versionen....
  2. OpenSlides 2.0 im neuen Erscheinungsbild

    OpenSlides 2.0 im neuen Erscheinungsbild: OpenSlides, ein webbasiertes Präsentationssystem zur Darstellung und Steuerung von Tagesordnungen, Anträgen und Wahlen auf einer Veranstaltung,...
  3. VNC: nur grauer Bildschirm

    VNC: nur grauer Bildschirm: Hallo, habe wie folgt http://teguhth.blogspot.in/2013/08/how-to-enable-vncserver-on-solaris-10.html einen VNC Server auf meinem Oracle Solaris 10...
  4. Frankreich: Protest gegen Microsoft-Vertrag im Bildungswesen

    Frankreich: Protest gegen Microsoft-Vertrag im Bildungswesen: In Frankreich protestieren drei Open-Source-Gruppen gegen einen Vertrag zwischen dem Ministeriums für Bildung und Microsoft France. Weiterlesen...
  5. UNICEF Innovation Fund fördert freie Software für die Ausbildung

    UNICEF Innovation Fund fördert freie Software für die Ausbildung: Die UNICEF hat einen Innovations-Fonds mit über neun Millionen US-Dollar gegründet, der Open-Source-Technologien für die Ausbildung von Kindern...