Laden eines Bildes aus dem Speicher, GDI+
Hier ist eine kurze und einfache Frage: mit GDI+ von C++, wie würde ich ein Bild laden von Pixeldaten in den Speicher?
- Ich glaub dieser thread dein problem gelöst: [stackoverflow.com/questions/192124/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wohl nicht so einfach, wie Sie gehofft hatten, aber du kannst eine BMP-Datei im Speicher mit Ihren pixel-Daten:
Wenn nötig, übersetzen Sie Ihre pixel-Daten in BITMAP-format. Wenn Sie bereits haben, sagen wir, 24-bit-RGB-pixel-Daten ist es wahrscheinlich, dass keine übersetzung erforderlich ist.
Erstellen (in der Erinnerung) eine BITMAPFILEHEADER-Struktur, gefolgt von einer BITMAPINFO-Struktur.
Nun haben Sie die Sachen, die Sie brauchen, die Sie benötigen, um es in ein IStream-also GDI+ kann es verstehen. Wahrscheinlich die einfachste (wenn auch nicht performant) Weg, dies zu tun ist, um:
Nun rufen Sie die GDI+ - Image::FromStream () - Methode laden Sie Ihr Bild in GDI+.
Glück!
Gibt es eine bitmap-Konstruktor, der nimmt eine BITMAPINFO-und einem Zeiger auf pixel-Daten direkt, zum Beispiel:
Ist das OK für ein RGB-Bild, wenn es ist eine palette Bild würden Sie zuteilen müssen eine BITMAPINFO-mit genug Platz für die RGBQUADS etc etc.
Verwenden SHCreateMemStream, es nimmt einen Zeiger auf die Daten und die Größe der Daten.
Ist die "pixel-Daten im Speicher" formatiert einen bestimmten Bild-Typ, d.h., bitmap, TIF, PNG, etc.? Wenn ja, erhalten Sie es in einen Strom und die Verwendung von System.Zeichnung.Bild.FromStream.
Dieser Artikel beschreibt, wie Sie laden ein GDI+ Bild aus einer Ressource (rc-Datei). Laden des Bildes aus dem Speicher ähnlich sein sollten.