BitmapPalette Класс

Определение

Определяет доступную цветовую палитру для поддерживаемого типа изображений.

public sealed class BitmapPalette : System.Windows.Threading.DispatcherObject
Наследование
BitmapPalette

Примеры

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

В следующем примере показано, как получить изображение BitmapPalette .


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

Комментарии

Только форматы изображений с тегами (TIFF) и GIF поддерживают палитры изображений. Однако для определения объекта BitmapPaletteможно использовать другие типы изображений. Попытка определения BitmapPalette неподдерживаемого формата растрового изображения не приводит к исключению. Указанный объект BitmapPalette просто игнорируется.

Windows Presentation Foundation (WPF) поддерживает как пользовательские цветовые палитры, так и предопределенные палитры, определенные классомBitmapPalettes.

Конструкторы

BitmapPalette(BitmapSource, Int32)

Инициализирует новый экземпляр класса BitmapPalette на основе указанного объекта BitmapSource. Новый объект BitmapPalette ограничен указанным максимальным количеством цветов.

BitmapPalette(IList<Color>)

Инициализирует новый экземпляр BitmapPalette указанными цветами.

Свойства

Colors

Получает цвета, определенные в палитре.

Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.

(Унаследовано от DispatcherObject)

Методы

CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)

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

Продукт Версии
.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
Windows Desktop 3.0, 3.1, 5, 6, 7

См. также раздел