mikrocontroller.net

Forum: PC-Programmierung GIF, JPG, PNG, Bilder in RGB-Feld wandeln C/C++


Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mit welcher Funktion/Bibliothek liest man am besten die RGB-Werte einer 
Bild-Datei in ein 2D-Feld ein? - also so ungefähr:
unsigned long Feld[1600, 1200];
FILE * datei = open("bild.jpg", READ);
Image_to_RGB(datei, Feld);

Klar gibt es da wohl mehrere Libraries/Möglichkeiten und dann ist es 
wohl noch von Windows zu Linux unterschiedlich. Ich möchte von euch 
gerne wissen, was da die gängigste Methode ist?

Autor: the other side of horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man nimmt die zum Dateiformat passende Library, also libjpg, libpng etc.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alternativ sucht man sich eine Bibliothek, die viele solche Formate in 
ein einheitliches API kombiniert. Dann braucht man sich in der Regel gar 
nicht mehr darum zu kümmern, was da eigentlich für ein Format 
dahintersteckt.
Beispiele, die mir so aus dem Stegreif einfallen, wären 
libgraphicsmagick und devil.

http://www.graphicsmagick.org/
http://openil.sourceforge.net/

Diese Libs gibt es für beide erwähnten Betriebssysteme. Man kann also 
unter beiden auf die gleiche Art auf die Datei zugreifen.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ich habe jetzt "ImageMagick-6.5.1-1-Q16-windows-dll.exe" installiert. 
Da sind die DLL-Dateien und die Header drinnen, bei den anderen 
Varianten fehlte das immer. Nun habe ich bei dev-c++ den include-pfad 
hinzugefügt und es kommt die Meldung "undefined reference". Scheinbar 
findet der nicht die Bibliothek, auf die der Header verweist.
Was muss ich jetzt noch machen?

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DLL in windows/system32 oder das aktuelle Verzeichnis kopieren.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hat nichts gebracht.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer bringt diese Meldung? Compiler? Linker? Programm? Betriebssystem? 
Ich kann mir auch nicht vorstellen, daß "undefined reference" die ganze 
Fehlermeldung ist. Steht da wirklich kein Name dabei, was "undefined" 
ist und auch keine Information darüber, wo diese "reference" ist?

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
der Linker

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das heißt, daß du dein Programm nicht gegen die Bibliothek linkst. Ich 
kenne mich mit Dev-C++ nicht aus, aber du wirst dort irgendwo eine Liste 
der zu linkenden Bibliotheken angeben können, und da muß die von 
ImageMagick mit dazu.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe ich jetzt auch gemerkt gehabt und -l"CORE_RL_wand_" hinzugefügt. 
Nun scheints zu klappen. Danke auch

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.