CImage Klasse verwenden
-
Schau mal in die FAQ.
-
Wo steht dort mehr darüber? Habe nichts gefunden (ausser andere Probleme mit CImage).
Danke
-
Was genau hat denn eigentlich CImage mit GDI+ zu tun? Ich dachte da gäbe es nur die abstrakte Klasse Gdiplus::Image und dann sowas wie Gdiplus::Bitmap.
Falls du dann GDI+ in deinem Programm einsetzen möchtest, musst du natürlich darauf achten, die Bibliothek zu initialisieren (Gdiplus::GdiplusStartup usw.).Grüße,
Michael
-
Decimad schrieb:
Was genau hat denn eigentlich CImage mit GDI+ zu tun? Ich dachte da gäbe es nur die abstrakte Klasse Gdiplus::Image und dann sowas wie Gdiplus::Bitmap.
Falls du dann GDI+ in deinem Programm einsetzen möchtest, musst du natürlich darauf achten, die Bibliothek zu initialisieren (Gdiplus::GdiplusStartup usw.).1. CImage ist eine ATL Klasse, die einiges aus GDI+ kapselt.
2. CImage behandelt GDI+ Startup und Release von selbst und man muss sich nicht drum kümmern!
-
Den Wust soll nochmal einer verstehen... Warum kapselt MFC oder ATL nochmal etwas, das schon in Gdi+ gekapselt ist? Oder ist Gdi+'s Image über CImage implementiert?
Ich blick da echt nicht mehr durch... Oder war CImage früher nicht über Gdi+ implementiert?
-
IMHO hat CImage immer schon GDI-Plus mit verwendet.
Allerdings geht es hier nicht um die Kappselung der GDI+ Image's alleine.Dieses Ding ist einfach extrem universell und behandelt fast alles was eben mit Bildchen zu tun hat und das eben als gute Brücke zum guten alten GDI ;).
GDI+ kommt in dieser Klasse auch gar nicht so oft zum Einsatz...
Denk Sie Dir als Klasse der Kategorie "Use: Load,Draw,Drop and don't think about how... "

-
Hrmmm, okay, dankeschön für die Klärung
Ich benutze aus Protest einfach Gdi+ direkt! Hah! 
-
GDI+ direkt ist doch sicherlich, wie GDI, nicht objektorientiert und wird bei MFC darum gekapselt?
Ich bin auf die Klasse gestossen als ich ein Bildchen speichern wollte aus einem EMF und da kam sie mir so bekannt vor von C#, es lässt sich mit extrem geringem Aufwand fast jedes (wichtigste) Dateiformat - gif, png, emf (natürlich eingebettetes Bitmap und nicht vektorisiert) etc. erstellen.
Um ein Bild in der Helligkeit zu verändern kenne ich keine Funktion da habe ich einen Code gefunden welcher unsafe verwendet aber sehr schnell ist. Kann GDI+ das gar nicht von sich aus (C# verwendet ja anscheinend genau die selben Methoden).Allerdings weiss ich nun noch immer nicht genauer weiter wie man unter C++ diese Klasse verwendet
In der FAQ unter MFC hab ich's nicht gefunden (Grafik...).
-
Du irrst GDI+ ist objektorientiert:
http://msdn.microsoft.com/en-us/library/ms533958(VS.85).aspx
-
C. M. Obrecht schrieb:
Wo steht dort mehr darüber? Habe nichts gefunden (ausser andere Probleme mit CImage).
Danke
http://www.c-plusplus.net/forum/viewtopic-var-t-is-54279.html

-
Martin Richter schrieb:
Du irrst GDI+ ist objektorientiert:
http://msdn.microsoft.com/en-us/library/ms533958(VS.85).aspxInteressant! Wie geht denn sowas unter C oder Assembler (WinAPI ohne MFC)?
Unix-Tom schrieb:
C. M. Obrecht schrieb:
Wo steht dort mehr darüber? Habe nichts gefunden (ausser andere Probleme mit CImage).
Danke
http://www.c-plusplus.net/forum/viewtopic-var-t-is-54279.html

// Picture (Implementations) Version 1.00
Danke, das habe ich schon gefunden; ich fand hier echt nur die Implementation einer eigenen Picture-Klasse aber keine Tips zur Verwendung der CImage! In den msdn suchte ich auch schon (vergeblich, hab's wahrscheinlich einfach nicht gefunden).