Share via


BitmapPalette Oluşturucular

Tanım

BitmapPalette sınıfının yeni bir örneğini başlatır.

Aşırı Yüklemeler

BitmapPalette(IList<Color>)

Belirtilen renklerle sınıfının yeni bir örneğini BitmapPalette başlatır.

BitmapPalette(BitmapSource, Int32)

Belirtilen BitmapSourceöğesini temel alarak sınıfının yeni bir örneğini BitmapPalette başlatır. Yeni BitmapPalette , belirtilen maksimum renk sayısıyla sınırlıdır.

BitmapPalette(IList<Color>)

Belirtilen renklerle sınıfının yeni bir örneğini BitmapPalette başlatır.

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

Parametreler

colors
IList<Color>

Özel palete eklenecek renkler.

Özel durumlar

colors parametresidirnull.

colors Parametre 1'den küçük veya 256'dan büyük.

Örnekler

Aşağıdaki örnekte bir özel BitmapPalette öğesinin nasıl tanımlanacağı ve yeni BitmapSourcebir öğesine nasıl uygulanacağı gösterilmektedir.

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)

Ayrıca bkz.

Şunlara uygulanır

BitmapPalette(BitmapSource, Int32)

Belirtilen BitmapSourceöğesini temel alarak sınıfının yeni bir örneğini BitmapPalette başlatır. Yeni BitmapPalette , belirtilen maksimum renk sayısıyla sınırlıdır.

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

Parametreler

bitmapSource
BitmapSource

Paletin okunduğu veya oluşturulduğu kaynak bit eşlem.

maxColorCount
Int32

Yeninin BitmapPalette kullanabileceği en fazla renk sayısı.

Öznitelikler

Özel durumlar

bitmapSource parametresidirnull.

Örnekler

Aşağıdaki örnekte bir görüntüden nasıl alınacak BitmapPalette gösterilmektedir.


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

Açıklamalar

bitmapSource Zaten tanımlanmış bir palet varsa, ilgili palet döndürülür. Aksi takdirde, bit eşlem analizinden yeni bir palet oluşturulur.

Ayrıca bkz.

Şunlara uygulanır