PictureBox.Image.Palette
-
Wie kann man
PictureBox.Image.Palette
andern um zb ein GrayScale palette (Color[]) zuzuweisen?
danke.
-
ColorPaletten haben keinen Constructor, können also nicht "stand-alone" created werden. Wenn Deine Bilder bereits eine Palette haben kannst Du diese aber modifizieren. Interessant ist, das die erste Zeile in dem Beispielcode tatsächlich eine Kopie der Image.Palette erzeugt. Ob das nun Bug oder Feature ist kann ich nciht sagen..
ColorPalette pal = pictureBox1.Image.Palette; // Erzeugt eine Kopie der Palette for (int i = 0; i < pal.Entries.Length; ++i) { Color col = pal.Entries[i]; int gray = (col.R + col.G + col.B) / 3; pal.Entries[i] = Color.FromArgb(gray, gray, gray); } pictureBox1.Image.Palette = pal; // Die Original-Palette durch die Kopie ersetzen
(für die wiseguys die meinen eine foreach-schleife wäre hier eleganter... versuchst mal
)
Ansonsten gibts hier (http://support.microsoft.com/kb/319061) Informationen wie man sich eine ColorPalette "erzeugen" kann (in dem Beispielcode wird eine leere Bitmap erzeugt und dann deren ColorPalette "geklaut"... jaja, die Beispielcodes von Kleinweisch können lustig sein...)
-
danke.
funzt wie es soll.