GDI Äquivalent zu ColorMatrix
-
Hallo!
Ich möchte bei einem HBITMAP die Helligkeit und den Kontrast verändern. .NET bietet dafür die ColorMatrix Klasse, die man in ImageAttributes verpacken kann. Wie mache ich das mit GDI?
-
.NET verwendet die GDI+ Klassen/methoden:
ColorMatrixEffect Class : http://msdn.microsoft.com/library/en-us/gdicpp/GDIPlus/GDIPlusReference/Classes/ColorMatrixEffect.asp
Oder auch: Effect Class: http://msdn.microsoft.com/library/en-us/gdicpp/GDIPlus/GDIPlusReference/Classes/Effect.asp
Oder auch: HueSaturationLightness Class: http://msdn.microsoft.com/library/en-us/gdicpp/GDIPlus/GDIPlusreference/classes/huesaturationlightness.asp
-
Ich weiß, dass .NET GDI+ verwendet, nur das ist mir etwas zu langsam. Es geht eigentlich darum ein C# Programm mit GDI aufzupeppeln.
-
Hab ich jetzt nicht ganz verstanden... Du möchtest GDI+ schreiben?
-
Nein, derzeit verwende ich die GDI+ ColorMatrix und Graphics.DrawImage() um ein Bitmap mit anderen Helligkeitswerten zu zeichnen. GDI+ ist aber leider nicht die schnellste Bibliothek, also möchte ich mein Bitmap mit den GDI Funktionen der WinAPI manipulieren, die um einiges schneller sind. Das Problem ist nur, dass ich nicht weiß wie ich einem HBITMAP eine andere Helligkeit verpasse. Zum Anlegen dieser HBITMAPs verwende ich CreateDIBSection().
-
GDI kann meines Wissens nach sowas nicht...
Du musst also direkt auf den Bitmap-Speicher zugreifen und entsprechend der Farbtiefe die Farbe mit den passenden Algorythmus anpassen... google ist Dein Freund!