Announcement

Collapse
No announcement yet.

DLL für JPEG nach BMP?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DLL für JPEG nach BMP?

    Mein „betagter“ Compiler unterstützt leider noch keine JPG (JPEG) sondern nur BMP. Ich bin deshalb auf der Suche nach einer DLL (Freeware) oder einer Klasse (die auf der Klasse Timage aufbaut bzw. deren Eigenschaften und Methoden erbt), um Bilddateien im JPEG (.jpg) zu laden und nach folgendem Beispiel der Eigenschaft Data zu übergeben.

    object Image: TImage
    Picture.Data = JpegLoad(Filename)

    Ich benötige nur eine LOAD-Funktion (keine SAVE-Funktion). Als Übergabeparameter wird ein absoluter Pfad und Dateiname geliefert, als Rückgabewert eben der Data-Stream im Bitmap-Format (BMP).

    Kennt jemand eine solche DLL?

  • #2
    Vielleicht kann es auch eine Komponente sein??

    Würde dann suchen www.google.de

    Komponenete jpg

    Component jpg

    oder

    http://delphi.icm.edu.pl/

    hier mal schauen.

    Christia
    Christian

    Comment


    • #3
      Schau mal unter http://www.6ixsoft.com/ rein!

      MFG Daniel

      Comment


      • #4
        Hallo Daniel

        Vielen Dank für den Tipp, scheint meinen Zweck zu erfüllen. Ich hab's auch gleich ausprobiert. Leider mache ich was falsch, denn mein Compiler reklamiert. Hast du ein Beispiel, wie man eine .jpg-Datei einliest und als Bitmap anzeigt (Borland C++ Source)

        Comment


        • #5
          Hi!

          Also, FreeImage funktioniert einwandfrei, auch für den C++ Builder. Du mußt nur vor dem einbinden der LIB in dein C++ Builder Projekt eine neue LIB aus der DLL erzeugen, da der C++ Builder die Visual C++ LIB von FreeImage nicht linken kann. Das kannst du mittels dem Programm IMPLIB (im Bin-Verzeichnis des C++ Builder) machen. Zuerst die original LIB Datei löschen, dann eine Dos-Shell öffnen und ins das FreeImage Verzeichnis wechseln und dann IMPLIB mittels "implib -c freeimage.lib freeimage.dll" ausführen und schon solltest du eine LIB Datei für den C++ Builder haben. Einfach ins Projekt einfügen.

          Das Darstellen eines FreeImage Bildes vom Typ FIBITMAP funktioniert dann so (ich hoffe es klappt, habs nicht probiert - aber das kannst ja Du machen):

          <PRE>
          FIBITMAP *dib = FreeImage_LoadBMP("test.bmp", BMP_DEFAULT);

          SetDIBitsToDevice(Canvas->Handle,
          0, 0, FreeImage_GetWidth(dib),
          FreeImage_GetHeight(dib), 0, 0, 0,
          FreeImage_GetHeight(dib), FreeImage_GetBits(dib),
          FreeImage_GetInfo(dib), DIB_RGB_COLORS);
          </PRE>

          Also dann! MFG Daniel

          Comment


          • #6
            Hi Daniel

            Nochmals vielen Dank für den Tipp. Das Compilieren und Linken funktioniert jetzt. Beim Ausführen des Programmes kommt nun die Meldung "Der Prozedureinstiegspunt „_FreeImage_GetBits“ konnte in der Dynamic Link Library „FreeImage.dell“ nicht gefunden werden."
            Sagt dir das was?

            Zur Info: Ich habe oberhalb des Includes zwei #define eingebaut, weil der Compiler wegen doppelter Deklaration gemeckert hat. Hat das ev. einen Einfluss?
            #define _WINDOWS_
            #define _cplusplus
            #include "FreeImage.h"

            mfg

            So

            Comment


            • #7
              Kann sein! Werds mir mal ansehen!
              Bei mir hats allerdings einwandfrei funktioniert!
              Werd Dir ein Beispielprogramm per e-mail schicken (e-mail adresse bitte)!

              MFG Daniel

              Comment


              • #8
                Hi Daniel

                Vielen Dank

                Meine e-mail: [email protected]

                Comment


                • #9
                  Hallo Daniel,
                  habe das gleiche Problem mit dem Dll-Einstiegspunkt bei FreeImage, aber mit BC 5.02! Habe die Importlib schon neu erzeugt, aber das brachte nichts. Vielleicht hast Du auch eine Lösung für mich

                  Comment

                  Working...
                  X