Wie würde ich ein PNG-Bild mit Win32 / GDI laden (kein GDI + wenn möglich)?
Ist es möglich, laden Sie eine PNG-Datei aus einer Datei in ein HBITMAP mithilfe von Win32-GDI-Funktionen? Wenn nicht, was wäre die leichteste Lösung ohne Verwendung von externen Bibliotheken (libraries wie libpng)?
InformationsquelleAutor der Frage jnm2 | 2010-12-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Windows Imaging Component zum laden von PNG-Dateien (auf Windows XP SP2 und höher). Sehen MSDN Magazin für eine Einführung in die Verwendung der API und mein blog-post für ein code-Beispiel, lädt ein PNG aus einem IStream und konvertiert es in ein HBITMAP.
InformationsquelleAutor der Antwort Bradley Grainger
Gibt es keine Notwendigkeit, verwenden Sie die Windows Imaging-Komponente GDI+ - oder PNG-Bibliothek. Sie können Symbol-Funktionalität.
Add new icon (ICO_PNG) VC Projekt-Ressourcen mit benutzerdefinierte Breite und Höhe (Resource-Editor->Bild->Neues Bild Geben). Kopieren Sie Ihre png-Bild hier und Fill-Tool+transparente Farbe, Symbol, transparent.
Fügen Sie Bild-Steuerelement (IDC_PNG) auf Ihren dialog (Type = Besitzer zeichnen).
Dialogfeld-Prozedur-code:
InformationsquelleAutor der Antwort vadim_hr
Können Sie es mit
StretchDIBits
API, aber begrenzt durch OS - /Treiber-Verfügbarkeit.Consult MSDN-Dokumentation für details:
http://msdn.microsoft.com/en-us/library/dd145121(v=VS.85).aspx
http://msdn.microsoft.com/en-us/library/dd145107(VS.85).aspx
Ich mich entschuldigen für irreführend, Sie Jungs in dieser Frage interessiert.
Lassen Sie mich korrigieren, mein Fehler.
Keine
StretchDIBits
für PNG-Zeichnung.Sie würde besser versuchen, WIC-Methode, oder überlegen Sie, Weise zu integrieren GDI+ in Ihre Projekte.
InformationsquelleAutor der Antwort 9dan
Glaube nicht, dass GDI unterstützt png -, haben Sie sich libpng
InformationsquelleAutor der Antwort Martin Beckett