Bibliotheken gesucht um Bilder nur zu öffnen, nicht verändern, nicht anzeigen



  • Hallo,

    ich möchte gerne verschiedene Bildformate (BMP, JPG, PNG, usw) öffnen können und dann einfach die Farbwerte an verschiedenen Pixelstellen auslesen können.

    Was gibt es da für Möglichkeiten?



  • Die üblichen Verdächtigen.
    DevIL, Free Image, ...



  • Falls du willst, kannst du natürlich ein einen Parser für BMP selber bauen. Du kannst auch die einzelnen Bibliotheken, wie libpng und libjpeg einzeln einbinden.

    Wenn ich mich nicht irre, sollten solche Dinge auch mit gd gehen.



  • Hallo,

    ich versuche mich gerade an DevIL, scheitere aber gnadenlos.
    Ich sitze hier an einem Windows XP mit installiertem MinGW.

    Ich habe folgende main.c

    #include "IL/il.h"
    
    int main()
    {
    	ilInit();
    	return 0;
    }
    

    Im Verzeichnis habe ich desweiteren den Ordner IL aus dem SDK, dort im Unterordner include.

    Außerdem die Datei DevIL.dll aus selbigen SDK (Unterordner lib) und die Datei il.def, die ich aus Quellpaket habe (Unterordner src-IL\msvc9).

    Damit habe ich über dlltool --input-def il.def --dllname DevIL.dll --output-lib DevIL.a die Lib erstellt, die ich für MinGW brauche.

    Zum kompilieren kommt folgender Befehl zum Einsatz:
    gcc main.c -o main.exe G:\devtest\DevIL.a

    Leider funktioniert das nicht so wie ich mir das denke und bekomme folgende Fehlermeldung:

    C:\DOKUME~1\Lorenz\LOKALE~1\Temp/cc06aaaa.o(.text+0x2b):main.c: undefined reference to_imp__ilInit@0'collect2: ld returned 1 exit status`

    Hat jemand von euch eine Idee, was ich falsch heruntergeladen, falsch kompiliert oder sonst irgendwie falsch gemacht habe?

    SDK - http://downloads.sourceforge.net/openil/DevIL-SDK-x86-1.7.8.zip (DevIL 1.7.8 SDK for 32-bit Windows (1.48 MB))
    Quellpaket - http://downloads.sourceforge.net/openil/DevIL-1.7.8.zip (DevIL 1.7.8 zip)



  • Bist du sicher dass die .a Files hinter das "-o main.exe" gehören?
    Versuch mal

    gcc main.c G:\devtest\DevIL.a -o main.exe
    

    oder ggf.

    gcc main.c G:/devtest/DevIL.a -o main.exe
    


  • Es bleibt leider bei der Fehlermeldung:

    PS G:\devtest> gcc main.c G:\devtest\DevIL.a -o main.exe
    C:\DOKUME~1\Lorenz\LOKALE~1\Temp/cceCbaaa.o(.text+0x2b):main.c: undefined reference to `_imp__ilInit@0'
    collect2: ld returned 1 exit status
    

    Meines Wissens dürfte das eigentlich auch keinen Unterschied machen.



  • Du kannst ja auch FreeImage ausprobieren, das lässt sich völlig unkompliziert benutzen.
    Bei Bedarf die schon per dlltool konvertierte lib: libfreeimage.a.


Anmelden zum Antworten