Freigeben über


BitmapPalette Konstruktoren

Definition

Initialisiert eine neue Instanz der BitmapPalette-Klasse.

Überlädt

BitmapPalette(IList<Color>)

Initialisiert eine neue Instanz der BitmapPalette-Klasse mit den angegebenen Farben.

BitmapPalette(BitmapSource, Int32)

Initialisiert eine neue Instanz der BitmapPalette-Klasse anhand der angegebenen BitmapSource. Die neue BitmapPalette ist auf eine angegebene maximale Anzahl von Farben beschränkt.

BitmapPalette(IList<Color>)

Initialisiert eine neue Instanz der BitmapPalette-Klasse mit den angegebenen Farben.

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

Parameter

colors
IList<Color>

Die Farben, die der benutzerdefinierten Palette hinzugefügt werden sollen.

Ausnahmen

Der colors-Parameter ist null.

Der colors-Parameter ist kleiner als 1 oder größer als 256.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie ein benutzerdefinierter BitmapPalette definiert und auf ein neues BitmapSourceangewendet wird.

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)

Weitere Informationen

Gilt für:

BitmapPalette(BitmapSource, Int32)

Initialisiert eine neue Instanz der BitmapPalette-Klasse anhand der angegebenen BitmapSource. Die neue BitmapPalette ist auf eine angegebene maximale Anzahl von Farben beschränkt.

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)

Parameter

bitmapSource
BitmapSource

Die Quellbitmap, aus der die Palette gelesen oder erstellt wird.

maxColorCount
Int32

Die maximale Anzahl von Farben, die für die neue BitmapPalette verwendet werden können.

Attribute

Ausnahmen

Der bitmapSource-Parameter ist null.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie ein BitmapPalette aus einem Bild abgerufen wird.


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

Hinweise

Wenn die bitmapSource bereits über eine definierte Palette verfügt, wird die entsprechende Palette zurückgegeben. Andernfalls wird eine neue Palette aus einer Analyse der Bitmap erstellt.

Weitere Informationen

Gilt für: