BitmapEncoder.Palette Property

 

Gets or sets a value that represents the BitmapPalette of an encoded bitmap.

Namespace:   System.Windows.Media.Imaging
Assembly:  PresentationCore (in PresentationCore.dll)

public virtual BitmapPalette Palette { get; set; }

Property Value

Type: System.Windows.Media.Imaging.BitmapPalette

An instance of BitmapPalette.

Exception Condition
ArgumentNullException

The BitmapPalette value that is passed to the encoder is null.

Only Tagged Image File Format (TIFF) and Graphics Interchange Format (GIF) images (and some older, non-standard bitmap (BMP) images) support palettes.

The following example demonstrates how to apply a custom palette to a Tagged Image File Format (TIFF) image and subsequently encode it.

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);

.NET Framework
Available since 3.0
Return to top
Show: