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.

こちらもご覧ください

適用対象