BitmapPalette Class
Defines the available color palette for a supported image type.
Assembly: PresentationCore (in PresentationCore.dll)
| Name | Description | |
|---|---|---|
![]() | BitmapPalette(BitmapSource, Int32) | Initializes a new instance of the BitmapPalette class based on the specified BitmapSource. The new BitmapPalette is limited to a specified maximum color count. |
![]() | BitmapPalette(IList<Color>) | Initializes a new instance of the BitmapPalette class with the specified colors. |
| Name | Description | |
|---|---|---|
![]() | Colors | Get the colors defined in a palette. |
![]() | Dispatcher | Gets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.) |
| Name | Description | |
|---|---|---|
![]() | CheckAccess() | Determines whether the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.) |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
![]() | VerifyAccess() | Enforces that the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.) |
Only Tagged Image File Format (TIFF) and Graphics Interchange Format (GIF) image formats support image palettes. However, other image types can be used to define a BitmapPalette. Attempting to define a BitmapPalette for an unsupported bitmap format does not result in an exception; the designated BitmapPalette is simply ignored.
Windows Presentation Foundation (WPF) supports both custom color palettes and predefined palettes defined by the BitmapPalettes class.
The following example demonstrates how to define a custom BitmapPalette and apply it to a new BitmapSource.
int width = 128; int height = width; int stride = width/8; byte[] pixels = new byte[height*stride]; // Try creating a new image with a custom palette. List<System.Windows.Media.Color> colors = new List<System.Windows.Media.Color>(); colors.Add(System.Windows.Media.Colors.Red); colors.Add(System.Windows.Media.Colors.Blue); colors.Add(System.Windows.Media.Colors.Green); BitmapPalette myPalette = new BitmapPalette(colors); // Creates a new empty image with the pre-defined palette BitmapSource image = BitmapSource.Create( width, height, 96, 96, PixelFormats.Indexed1, myPalette, pixels, stride); FileStream stream = new FileStream("empty.tif", FileMode.Create); TiffBitmapEncoder encoder = new TiffBitmapEncoder(); TextBlock myTextBlock = new TextBlock(); myTextBlock.Text = "Codec Author is: " + encoder.CodecInfo.Author.ToString(); encoder.Frames.Add(BitmapFrame.Create(image)); MessageBox.Show(myPalette.Colors.Count.ToString()); encoder.Save(stream);
The following example demonstrates how to retrieve a BitmapPalette from an image.
// Get the palette from an image BitmapImage image2 = new BitmapImage(); image2.BeginInit(); image2.UriSource = new Uri("tulipfarm.tif", UriKind.RelativeOrAbsolute); image2.EndInit(); BitmapPalette myPalette3 = new BitmapPalette(image2, 256); //Draw the third Image Image myImage2 = new Image(); myImage2.Source = image2; myImage2.Stretch = Stretch.None; myImage2.Margin = new Thickness(20);
Available since 3.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

