Я пытаюсь создать растровое изображение 3x1 с указанной палитрой. Для тестирования я использовал 3 цвета: красный, зеленый и синий. Когда я запускаю свой код, все, что у меня есть, все красные (это первый цвет).Как построить растровое изображение indexed8 из pixeldata и палитры
Это мой код
public void CreateTestImg()
{
// List to store colors for palette
List<Color> Colors = new List<Color>();
// Adds Red to the list
Colors.Add(Media.Color.FromArgb(255, 255, 0, 0));
// Adds Green to the list
Colors.Add(Media.Color.FromArgb(255, 0, 255, 0));
// Adds Blue to the list
Colors.Add(Media.Color.FromArgb(255, 0, 0, 255));
// Create a new palette with the list of colors as input
BitmapPalette PLT = new BitmapPalette(Colors);
// Make a Bitmap with the specified width, height, dpix, dpiy, pixelformat, palette, PixelData, stride.
BitmapSource wb = BitmapSource.Create(3, 1, 96, 96, PixelFormats.Indexed8, PLT, {0, 1, 2}, 3);
// Freezes the object
wb.Freeze();
// Creates a new brush from the Bitmap so I can draw with it later
ImageBrush newBMB = new ImageBrush(wb);
// Freezes the brush
newBMB.Freeze();
// Adds brush to dictionary for later referencing
ImageBatch.Add("WHATEVER", newBMB);
}
PixelFormats.Indexed8 относится к 8bit или 256 цветовой палитры. Ваши цвета 32 бит? – Kris
@ Kris не предполагается хранить 256 цветов в палитре, а пиксельные данные ссылаются на цвет в палитре по индексу? Это то, что я понял из документа: https://msdn.microsoft.com/en-us/library/system.windows.media.pixelformats.indexed8%28v=vs.110%29.aspx – TizzyT455