2016-01-05 7 views
0

Я пытаюсь создать растровое изображение 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); 
} 
+0

PixelFormats.Indexed8 относится к 8bit или 256 цветовой палитры. Ваши цвета 32 бит? – Kris

+0

@ Kris не предполагается хранить 256 цветов в палитре, а пиксельные данные ссылаются на цвет в палитре по индексу? Это то, что я понял из документа: https://msdn.microsoft.com/en-us/library/system.windows.media.pixelformats.indexed8%28v=vs.110%29.aspx – TizzyT455

ответ

0

вы предоставите Int как pixelsource и Интс являются 32bit, правильно будет предоставлять байт:

BitmapSource термометру = BitmapSource.Create (3,1, 96, 96, PixelFormats.Indexed8, PLT, новый байт [] {0, 1, 2}, 3);

привет от # C#, вы должны оставаться дольше получать помощь;)

+0

Спасибо большое, это было действительно решение. Хорошо выглядящий, я весь день царапал мне голову, такая глупая ошибка: '( – TizzyT455

 Смежные вопросы

  • Нет связанных вопросов^_^