GDI+
-
Hallo, ich habe da mal 2 fragen zu GDI+.
Erstens ist GDI+ schneller oda langsammer als GDI bzw nimmt sich das nicht viel.
Und 2 ist GDI+ auch unter win95 oda 98 ausführbar oder geben sich da probleme? Kann man es vieleicht nur unter XP benutzen oder gibts da keine probs mit früheren windows versionen?
-
Ob es schneller oder langsammer ist weiß ich nicht (wahrscheinlich langsammer).
GDI+ ist auch bei Win98 verfügbar, wenn das NET-Framework installiert ist.
-
1. GDI+ ist viel mächtiger als GDI. Wenn Du das gleiche mit GDI+ machst, was Du jetzt mit GDI machst ist es vermutlich gleich schnell.
2. GDI+ kann man ab Win98 installieren (Win95 wird von MS schon lange nicht mehr supported); Du brauchst keine .NET dazu!
http://www.microsoft.com/downloads/details.aspx?FamilyID=6a63ab9c-df12-4d41-933c-be590feaa05a
-
Da gibts auch noch was zu lesen.
-
RR schrieb:
(wahrscheinlich langsammer).
Begründung?
RR schrieb:
GDI+ ist auch bei Win98 verfügbar, wenn das NET-Framework installiert ist.
Nein, die GDI+ hat absolut nichts mit .NET zu tun, es ist eine native Win32-Library. Es reicht eine kleine DLL für Nicht-WinXP-Systeme, die man seiner Anwendung beilegen muß. Die GDI+ aus dem .NET-Framework greift selbst auch nur auf die native GDI+ zu.
-
Hallo, kann mir jemand erklären wie ihc es schaffe ein blödes Bitmap aus den Resourcen zu laden und per GDI+ ausgeben kann.
SO mach ich es wenn ich eine Datei lade:
Graphics g(GetDC()->m_hDC); Image image(L"c:\\test.bmp"); g.DrawImage(&image,10,10);
klappt allet wunderbar. Nur wie krieg ich ihn dazu die bitmap aus den resourcen zu nehmen???
-
Die Image-Klasse ist für sowas nicht gedacht.
Um mit Bildern zu arbeiten sollte man eher Bitmap oder CachedBitmap benutzen. Gdiplus::Bitmap kann dir problemlos eine Bitmap aus deinen Resourcen laden:
-
ALso irgendwie bekomme ich das net hin.
Hier mein Code:Graphics graph(GetDC()->m_hDC); Bitmap bitmap(AfxGetInstanceHandle(),L"IDB_BITMAP1"); graph.DrawImage(&bitmap,0,0);
-
Versuchs mal so:
Bitmap bitmap(NULL,MAKEINTRESOURCE(IDB_BITMAP1));
Gruß
-
Stand auch in dem Link den ich gepostet habe:
bitmapName
[in] Pointer to a null-terminated string that specifies the path name of the bitmap resource to be loaded. Alternatively, this parameter can consist of the resource identifier in the low-order word and zero in the high-order word. You can use the MAKEINTRESOURCE macro to create this value.
-
Das klapt nicht, ich habe das probiert schon bevor ich hier gepostet hatte. Aber er malt das Bild nicht. Hat das von euch schon mal jemand hinbekommen? Testet das doch bitte mal es klapt einfach net.
Graphics graph(GetDC()->m_hDC); Bitmap bitmap(NULL,MAKEINTRESOURCE(IDB_BITMAP1)); graph.DrawImage(&bitmap,0,0);
-
Kanns nicht probieren, bin zur Zeit nicht zu Hause. Aber meinste, es ist gut NULL als ersten Parameter zu übergeben? Immerhin muß er ja wissen, aus welcher Applikation er die Bitmap-Resource laden muß. Übergib ihm doch bitte eine gültige Instanz. Wenns dann nicht funktioniert, werde ich es zu Hause mal checken.
-
Hatte den Constructor nicht angeschaut. Geht aber AFAIK nur so:
Bitmap *bm = Bitmap::FromResource(NULL,MAKEINTRESOURCE(IDB_BITMAP1));
Gruß
-
das klappt allet nicht. Man also so langsamm werd ich bekloppt dat kann doch net so schwer sein. Ich verstehe einfach net warum er das net lädt
-
Mal auf ein neues
Bitmap *bm = Bitmap::FromResource(::AfxGetApp()->m_hInstance,(WCHAR*)MAKEINTRESOURCE(IDB_BITMAP1));
-
Ja klasse dat klappt. Danke sehr.Muss dann wohl m Instance gelegen habe. Vielen dank hatte schon so ziemlich allet ausprobiert