Прочетете на английски Редактиране

Споделяне чрез


BitmapPalette Constructors

Definition

Initializes a new instance of the BitmapPalette class.

Overloads

BitmapPalette(IList<Color>)

Initializes a new instance of the BitmapPalette class with the specified colors.

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.

C#
public BitmapPalette(System.Collections.Generic.IList<System.Windows.Media.Color> colors);

Parameters

colors
IList<Color>

The colors to add to the custom palette.

Exceptions

The colors parameter is null.

The colors parameter is less than 1 or greater than 256.

Examples

The following example demonstrates how to define a custom BitmapPalette and apply it to a new BitmapSource.

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

See also

Applies to

.NET Framework 4.8.1 и други версии
Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

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.

C#
[System.Security.SecurityCritical]
public BitmapPalette(System.Windows.Media.Imaging.BitmapSource bitmapSource, int maxColorCount);
C#
public BitmapPalette(System.Windows.Media.Imaging.BitmapSource bitmapSource, int maxColorCount);

Parameters

bitmapSource
BitmapSource

The source bitmap from which the palette is read or constructed.

maxColorCount
Int32

The maximum number of colors the new BitmapPalette can use.

Attributes

Exceptions

The bitmapSource parameter is null.

Examples

The following example demonstrates how to retrieve a BitmapPalette from an image.

C#

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

Remarks

If the bitmapSource already has a defined palette, the corresponding palette is returned. Otherwise, a new palette is constructed from an analysis of the bitmap.

See also

Applies to

.NET Framework 4.8.1 и други версии
Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10