Bilddatei von der Festplatte in ein Array schreiben



  • Hallo

    Für ein Projekt im nächsten Semester muss ich c++ lernen und habe ein kleines Problem. Im Endeffekt soll ich einem Roboter mit einer Kamera beibringen, Objekte zu greifen.

    Zu Beginn will ich einen Kantendetektor schreiben, nur habe es ich es bisher nicht geschafft, eine simple Bilddatei (bmp, o.Ä.) so einzulesen, dass ich sie mir anzeigen lassen und die einzelnen Pixel manipulieren kann. (ich will auch keine GUI, ein paar Bilder und eine Textausgabe per Konsole reicht völlig)

    Ich entwicklte unter Mac Os, der Roboter läuft unter Linux. Die Anleitungen, die ich bis jetzt gefunden haben, benötigen zusätzliche Bibliotheken, von anderen Sprachen bin ich gewohnt, dass solche einfache Aufgaben eher mit einfachen Mitteln zu lösen sind.

    Kann mir jemand sagen, ob ich die wirklich eine zusätzliche Bibliothek brauche, oder ob ich das einfacher machen kann?

    Nikolas



  • Nikolas schrieb:

    Kann mir jemand sagen, ob ich die wirklich eine zusätzliche Bibliothek brauche, oder ob ich das einfacher machen kann?

    Die Bibliothek wird wohl auch in C oder C++ geschrieben sein. Folglich kannst du es auch selber programmieren.

    Schau hier: http://www.fortunecity.com/skyscraper/windows/364/bmpffrmt.html

    Die Frage ist: Warum das Rad neu erfinden. Mit dem Rest solltest du genug zu tun haben.



  • Ich wollte die Funktionen nicht selber schreiben.
    Wenn es also wirklich keine Hausmittel gibt, könntest du mir dann eine Bibliothek empfehlen? (Basisfunktionen reichen, bei größerem wie openCV ist noch unklar, ob es eingesetzt wird).



  • Nikolas schrieb:

    Wenn es also wirklich keine Hausmittel gibt, könntest du mir dann eine Bibliothek empfehlen? (Basisfunktionen reichen, bei größerem wie openCV ist noch unklar, ob es eingesetzt wird).

    Warum sollte in einer allgemeinen Programmiersprache eine Funktion vorhanden sein, um Microsoft Bitmap Dateien zu laden? Oder was ist ein "Hausmittelchen"?

    Wenn du nur Bilder laden und speichern willst, kannst du ja DevIL benutzen.

    Ansonsten kannst du das auch mit libSDL, GTK+, QT, libpng, libjpeg, imlib2. Diese Bilbiotheken sind auf den meisten *nix-Systemen vorhanden.

    Btw.: Soll das Programm später nur auf MacOS laufen?



  • Das Programm wird später unter Linux (Suse) laufen.
    Die libJpeg habe ich schon auf meinem Rechner gefunden, nur habe ich keine passende Doku dazu gefunden.
    Könntest du mir vielleicht kurz eine Demo schreiben?

    Ich habe erfahren, dass der Roboter doch direkt jpegs erzeugt, und erst nur bmp zu benutzen und später auf das richtige Format zu wechseln macht dann nur Probleme.



  • Nikolas schrieb:

    Das Programm wird später unter Linux (Suse) laufen.
    Die libJpeg habe ich schon auf meinem Rechner gefunden, nur habe ich keine passende Doku dazu gefunden.

    http://www.gidf.de/libjpeg

    Nikolas schrieb:

    Könntest du mir vielleicht kurz eine Demo schreiben?

    Das kommt drauf an, was du bereit bist zu zahlen. Das wären hier schließlich deine Hausaufgaben.

    Btw.: DevIL sollte leichter zu benutzen sein.



  • Halt doch mal die Luft an.
    Ich habe in anderen Sprachen schon häufiger Anfängern und Umsteigern bei eher einfachen Fragen geholfen, auch wenn irgendwo eine Lösung zu finden ist.
    Für jemanden, die noch nie etwas in c++ geschrieben hat, ist diese Frage nicht trivial und ein gut kommentierter Quellcode, zu dem man direkte Fragen stellen kann hilft sicherlich.
    Dann gleich mit Geld und Blöden Bilder zu kommen ist überheblich und arrogant.
    Wenn du Umsteigern nicht helfen willst, sei einfach still, aber red keinen Unsinn.
    Klar, jetzt weiss alle Welt, wie toll du bist, und dass ich ein Anfänger in C++ bin. Super. Fühlst du dich jetzt besser? Juhu, ich bin ein leetHacksor und wer kein c++ kann, ist nichts wert. 😡
    Leute wie dich findet man wohl in jedem Forum. Schade eigentlich. Du hast wahrscheinlich nie eine einfache Frage gestellt.

    Kleine Frage: Hast du überhaupt versucht, ein solches Beispiel über google zu finden? Ich gehe mal davon aus, dass du deinen Text einfach so ins Blaue hinein geschrieben hast.



  • Nikolas schrieb:

    Halt doch mal die Luft an.
    Ich habe in anderen Sprachen schon häufiger Anfängern und Umsteigern bei eher einfachen Fragen geholfen, auch wenn irgendwo eine Lösung zu finden ist.
    Für jemanden, die noch nie etwas in c++ geschrieben hat, ist diese Frage nicht trivial und ein gut kommentierter Quellcode, zu dem man direkte Fragen stellen kann hilft sicherlich.
    Dann gleich mit Geld und Blöden Bilder zu kommen ist überheblich und arrogant.
    Wenn du Umsteigern nicht helfen willst, sei einfach still, aber red keinen Unsinn.
    Klar, jetzt weiss alle Welt, wie toll du bist, und dass ich ein Anfänger in C++ bin. Super. Fühlst du dich jetzt besser? Juhu, ich bin ein leetHacksor und wer kein c++ kann, ist nichts wert. 😡
    Leute wie dich findet man wohl in jedem Forum. Schade eigentlich. Du hast wahrscheinlich nie eine einfache Frage gestellt.

    Du bist ganz schön unverschämt, aber ich antworte trotzdem.

    Die Sache ist nicht trivial. Ich muss mir genauso wie du, die Dokumentation durchlesen, sie verstehen und dir dann damit ein Beispiel Programm schreiben. Dafür brauche ich auch so meine Zeit und es ist nicht meine Aufgabe, sondern deine, das zu tun.

    Was du gestellt hast, ist keine einfache Frage, sondern hast du mich gefragt, ob ich für dich deine Aufgaben erledigen kann. Wenn es so einfach ist, wie du behauptest, dann hast du es doch in kürzester Zeit selbst gemacht. Wenn es nicht so einfach ist, dann wäre es durchaus angemessen, eine Bezahlung dafür zu verlangen.

    Daraus folgt entweder, du bist zu faul, oder du kannst es nicht. Wenn du aber nichtmal eine einfacht Bibliothek benutzen kannst, dann lern erstmal die Grundlagen, aber erwarte nicht, dass andere Leute deine Aufgaben erledigen.

    Nikolas schrieb:

    Kleine Frage: Hast du überhaupt versucht, ein solches Beispiel über google zu finden? Ich gehe mal davon aus, dass du deinen Text einfach so ins Blaue hinein geschrieben hast.

    Nein habe ich nicht. Und ich habe weniger als 5 Minuten gebraucht. (Hinweis: Der erste Treffer bei Google)

    Und ich gebe dir noch einen Hinweis: Willst du einfach Bilder laden und speichern, dann nimm DevIL! Da sind auch einfache Beispiele dabei. Willst du unbedingt libjpeg verwenden, dann ist es deine Pflicht, mal die Dokumentation zu lesen.


Anmelden zum Antworten