BitmapPalette Klasse

Definition

Definiert die verfügbare Farbpalette für einen unterstützten Bildtyp.

public ref class BitmapPalette sealed : System::Windows::Threading::DispatcherObject
public sealed class BitmapPalette : System.Windows.Threading.DispatcherObject
type BitmapPalette = class
    inherit DispatcherObject
Public NotInheritable Class BitmapPalette
Inherits DispatcherObject
Vererbung
BitmapPalette

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie eine benutzerdefinierte Benutzerdefinierte BitmapPalette definieren und auf eine neue BitmapSourceAnwenden anwenden.

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)

Im folgenden Beispiel wird veranschaulicht, wie ein BitmapPalette 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

Nur Tagged Image File Format (TIFF) und Graphics Interchange Format (GIF) Bildformate unterstützen Bildpaletten. Andere Bildtypen können jedoch verwendet werden, um eine BitmapPalette. Der Versuch, ein BitmapPalette Bitmapformat für ein nicht unterstütztes Bitmapformat zu definieren, führt nicht zu einer Ausnahme. Der angegebene BitmapPalette Wert wird einfach ignoriert.

Windows Presentation Foundation (WPF) unterstützt sowohl benutzerdefinierte Farbpaletten als auch vordefinierte Paletten, die von der klasse BitmapPalettes definiert werden.

Konstruktoren

Name Beschreibung
BitmapPalette(BitmapSource, Int32)

Initialisiert eine neue Instanz der BitmapPalette Klasse basierend auf dem angegebenen BitmapSource. Das Neue BitmapPalette ist auf eine angegebene maximale Farbanzahl beschränkt.

BitmapPalette(IList<Color>)

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

Eigenschaften

Name Beschreibung
Colors

Rufen Sie die in einer Palette definierten Farben ab.

Dispatcher

Ruft dies Dispatcher ab, dem dies DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)

Methoden

Name Beschreibung
CheckAccess()

Bestimmt, ob der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
VerifyAccess()

Erzwingt, dass der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)

Gilt für:

Weitere Informationen