BitmapPalette BitmapPalette BitmapPalette BitmapPalette Constructors

Определение

Перегрузки

BitmapPalette(IList<Color>) BitmapPalette(IList<Color>) BitmapPalette(IList<Color>) BitmapPalette(IList<Color>)

Инициализирует новый экземпляр класса BitmapPalette класс указанными цветами.Initializes a new instance of the BitmapPalette class with the specified colors.

BitmapPalette(BitmapSource, Int32) BitmapPalette(BitmapSource, Int32) BitmapPalette(BitmapSource, Int32)

Инициализирует новый экземпляр класса BitmapPalette на основе указанного объекта BitmapSource.Initializes a new instance of the BitmapPalette class based on the specified BitmapSource. Новый объект BitmapPalette ограничен указанным максимальным количеством цветов.The new BitmapPalette is limited to a specified maximum color count.

BitmapPalette(IList<Color>) BitmapPalette(IList<Color>) BitmapPalette(IList<Color>) BitmapPalette(IList<Color>)

Инициализирует новый экземпляр класса BitmapPalette класс указанными цветами.Initializes a new instance of the BitmapPalette class with the specified colors.

public:
 BitmapPalette(System::Collections::Generic::IList<System::Windows::Media::Color> ^ colors);
public BitmapPalette (System.Collections.Generic.IList<System.Windows.Media.Color> colors);
new System.Windows.Media.Imaging.BitmapPalette : System.Collections.Generic.IList<System.Windows.Media.Color> -> System.Windows.Media.Imaging.BitmapPalette
Public Sub New (colors As IList(Of Color))

Параметры

colors
IList<Color>

Цвета, добавляемые в пользовательскую палитру.The colors to add to the custom palette.

Исключения

Параметр colors имеет значение null.The colors parameter is null.

colors Параметра меньше 1 или больше 256.The colors parameter is less than 1 or greater than 256.

Примеры

Следующий пример демонстрирует определение настраиваемого BitmapPalette и применить его к новому BitmapSource.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);

Dim width As Integer = 128
Dim height As Integer = width
Dim stride As Integer = CType(width / 8, Integer)
Dim pixels(height * stride) As Byte

' Try creating a new image with a custom palette.
Dim colors As New List(Of 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)
Dim myPalette As New BitmapPalette(colors)

' Creates a new empty image with the pre-defined palette
Dim image As BitmapSource = System.Windows.Media.Imaging.BitmapSource.Create(width, height, 96, 96, PixelFormats.Indexed1, myPalette, pixels, stride)
Dim stream As New FileStream("empty.tif", FileMode.Create)
Dim encoder As New TiffBitmapEncoder()
Dim myTextBlock As 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)
Дополнительно

BitmapPalette(BitmapSource, Int32) BitmapPalette(BitmapSource, Int32) BitmapPalette(BitmapSource, Int32)

Инициализирует новый экземпляр класса BitmapPalette на основе указанного объекта BitmapSource.Initializes a new instance of the BitmapPalette class based on the specified BitmapSource. Новый объект BitmapPalette ограничен указанным максимальным количеством цветов.The new BitmapPalette is limited to a specified maximum color count.

public:
 BitmapPalette(System::Windows::Media::Imaging::BitmapSource ^ bitmapSource, int maxColorCount);
[System.Security.SecurityCritical]
public BitmapPalette (System.Windows.Media.Imaging.BitmapSource bitmapSource, int maxColorCount);
new System.Windows.Media.Imaging.BitmapPalette : System.Windows.Media.Imaging.BitmapSource * int -> System.Windows.Media.Imaging.BitmapPalette

Параметры

bitmapSource
BitmapSource BitmapSource BitmapSource BitmapSource

Исходное растровое изображение, из которого считывается или на основе которого создается палитра.The source bitmap from which the palette is read or constructed.

maxColorCount
Int32 Int32 Int32 Int32

Максимальное количество цветов, которое может использоваться в новом объекте BitmapPalette.The maximum number of colors the new BitmapPalette can use.

Исключения

Параметр bitmapSource имеет значение null.The bitmapSource parameter is null.

Примеры

Следующий пример демонстрирует способы извлечения BitmapPalette из образа.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);
' Get the palette from an image
Dim image2 As New BitmapImage()
image2.BeginInit()
image2.UriSource = New Uri("tulipfarm.tif", UriKind.RelativeOrAbsolute)
image2.EndInit()
Dim myPalette3 As New BitmapPalette(image2, 256)

'Draw the third Image
Dim myImage2 As New Image()
myImage2.Source = image2
myImage2.Stretch = Stretch.None
myImage2.Margin = New Thickness(20)

Комментарии

Если bitmapSource уже имеет определенную палитру, возвращается соответствующая палитра.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.

Дополнительно

Применяется к