다음을 통해 공유


BitmapPalette 생성자

정의

BitmapPalette 클래스의 새 인스턴스를 초기화합니다.

오버로드

BitmapPalette(IList<Color>)

지정된 색을 사용하여 BitmapPalette 클래스의 새 인스턴스를 초기화합니다.

BitmapPalette(BitmapSource, Int32)

지정된 BitmapSource를 기반으로 한 BitmapPalette 클래스의 새 인스턴스를 초기화합니다. 새 BitmapPalette가 지정된 최대 색 수로 제한됩니다.

BitmapPalette(IList<Color>)

지정된 색을 사용하여 BitmapPalette 클래스의 새 인스턴스를 초기화합니다.

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>

사용자 지정 색상표에 추가할 색입니다.

예외

colors 매개 변수가 null인 경우

colors 매개 변수가 1보다 작거나 256보다 큽니다.

예제

다음 예제에서는 사용자 지정을 정의하고 새 BitmapSource사용자 지정 BitmapPalette 에 적용하는 방법을 보여 줍니다.

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)

지정된 BitmapSource를 기반으로 한 BitmapPalette 클래스의 새 인스턴스를 초기화합니다. 새 BitmapPalette가 지정된 최대 색 수로 제한됩니다.

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)

매개 변수

bitmapSource
BitmapSource

색상표를 읽거나 생성한 원본 비트맵입니다.

maxColorCount
Int32

BitmapPalette에서 사용할 수 있는 최대 색 수입니다.

특성

예외

bitmapSource 매개 변수가 null인 경우

예제

다음 예제에서는 이미지에서 검색하는 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);
' 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 이미 정의된 색상표가 있는 경우 해당 색상표가 반환됩니다. 그렇지 않으면 비트맵 분석에서 새 팔레트가 생성됩니다.

추가 정보

적용 대상