Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Image из массива байтов


Автор: sindi8 23.8.2006, 18:04
Доброго времени суток!
Появилась у меня задачка - написать парсер для TGA-файлов. Описание формата найдено, код парсинга написан - и появился совершенно неожиданный вопрос - как теперь всё это дело в PictureBox-е отобразить? В результате разбора формата у меня имеется массив, каждый элемент которого соответствует цвету точки RGB (+Alpha). Подскажите пожалуйста, как мне теперь эти точки скормить PictureBox-у. Интуитивно кажется что Stream использовать нужно, но в каком формате подавать данные? Понятно что можно взять описание BMP-формата, и кодировать в него. Но может есть какой-то более независимый от формата способ?
Спасибо.

Автор: wotker 23.8.2006, 18:28
создай новый битмап. в двойном цикле каждому  пикселу присвой значение с помощью твоей матрицы.
потом отобрази этот битмап на контроле

Автор: marcusmae 23.8.2006, 19:39
там есть аттрибут PixelFormat - возможно, нужно будет выставить этот формат для битмапа, причём с соответствующим TGA количеством байтов под каждый цвет.

Добавлено @ 19:52 
а вообще предложенный wotker способ не очень быстрый. По-лучше будет с помощью System.Drawing.Bitmap.FromStream(...), установив формат битмапа соотвествующим формату элементов в потоке.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)