PNG-Bilder aus Resourcen, zip-, rar-, 7z-,...Archiven laden



  • Guten Tag

    Gibt es eine Möglichkeit mit der Klasse CImage PNG-Bilder aus Resourcen, zip-, rar-, 7z-,...Archiven zu laden?
    Professor Google wollte mir darüber nichts sagen.
    Hat das schon einmal jemand versucht oder weis jemand wie man das macht?


  • Mod

    Es gibt ZIP-Bibliotheken.
    Mit denen kannst Du auch Dateien in den Speicher entpcken. Solche Speicherblöcke kanst Du dann auch wieder verwenden um die JPG/PNG Datei zu nutzen.

    Ich verwende regelmässig solche Techniken aus einer ZIP-Datei nur Daten in den Speicher zu lesen und dort weiter zu verwenden.



  • Diese Bibleotheken kenne und verwende ich.
    Doch bis jetzt habe ich nur Texte (HTML, XML, Text,...) und Bitmaps auf diese Art verwendet.
    Für Bitmaps gibt es bei CImage eine schöne Funktion mit der man die Bilder aus Resourcen laden kann.
    Doch leider funktioniert das nicht mit den anderen von CImage unterstützten Bildformaten.

    Ich habe noch nicht herausgefunden wie ich mit CImage die Bilddaten aus dem Speicher laden kann.
    Ich könnte zwar den Umweg gehen und die Bilder auf der Festplatte zwischenspeichern, aber dass möchte ich vermeiden.

    Auch durch Googeln habe ich noch keinen Weg gefunden, wie ich mit CImage Bilder aus dem Speicher laden kann.


  • Mod

    Ich benutze IImage für so etwas.
    Wie hier beschrieben:
    http://msdn.microsoft.com/en-us/magazine/cc301454.aspx

    Einfach CreateStreamFromHGlobal (o.ä.) und dann OleLoadPicture

    EDIT:
    BTW ich habe vergessen, dass es ja auch in GDI+ Bitmap::FromStream gibt. Das tut es ja genauso.



  • Danke für den Tipp mit dem Stream.
    Das hört sich vielversprechend an.


  • Mod

    Wenn man einen Buffer hat, kan man auch ganz schnell selber ein Stream Interface erzegen, dass einen bestehenden Buffer benutzt. Dann entfällt das kopieren in den HGLOBAL.



  • Danke für den Hinweis.


Anmelden zum Antworten