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


von Stefan H. (Firma: dm2sh) (stefan_helmert)


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:
1
unsigned long Feld[1600, 1200];
2
FILE * datei = open("bild.jpg", READ);
3
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?

von the other side of horst (Gast)


Lesenswert?

Man nimmt die zum Dateiformat passende Library, also libjpg, libpng etc.

von Rolf Magnus (Gast)


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.

von Stefan H. (Firma: dm2sh) (stefan_helmert)


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?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

DLL in windows/system32 oder das aktuelle Verzeichnis kopieren.

von Stefan H. (Firma: dm2sh) (stefan_helmert)


Lesenswert?

Das hat nichts gebracht.

von Rolf Magnus (Gast)


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?

von Stefan H. (Firma: dm2sh) (stefan_helmert)


Angehängte Dateien:

Lesenswert?

der Linker

von Rolf Magnus (Gast)


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.

von Stefan H. (Firma: dm2sh) (stefan_helmert)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.