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
unsignedlongFeld[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?
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.
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?
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?
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.