2011-01-21 3 views
2

Я пытаюсь создать декодер, который будет транслироваться через файл pcx и отображать его на экране в виде растрового изображения. Мне удалось получить информацию из заголовка изображения с помощью двоичного считывателя, но теперь я достиг той части, которая, по-видимому, занимает наименьшее количество кода, но также самая сложная: создание массива пикселей.Декодирование изображения PCX в C# для отображения в виде растрового изображения

Я понимаю, что для обработки данных мне может потребоваться добавить две вложенные петли for. Я рассмотрел некоторые примеры C и C++, но пытаюсь их понять. Мне также нужно получить массив, чтобы отобразить его. если вам нужно больше кода, я поделюсь им.

Я искал по всему миру и читал спецификацию, но я не знаю, как подойти к этому. Если бы кто-нибудь мог мне помочь, я был бы очень благодарен.

С уважением.

+0

Какие файлы PCX вы пытаетесь прочитать? Все, или вы можете пропустить плоскости/палитры? Это не слишком сложно в абстрактном случае. Создайте массив [,], чтобы удерживать фактические данные пикселя, затем перебирайте строки, прокручивая столбцы, для загрузки отдельных плоскостей/пикселей. – ChrisV

+6

Я думал, когда этот метеорит уничтожил динозавров, все файлы PCX тоже исчезли. – detunized

+0

Я не против только 8-битных изображений, и я не был уверен, важна ли палитра. Будет ли ваш метод работать для других форматов? – jbroun

ответ

0

.NET не поддерживает изображения PCX изначально, у вас есть два варианта. Прочитайте спецификацию и декодируйте изображение самостоятельно или используйте некоторую библиотеку.

Как было предложено на bytes.com вы можете использовать Dot Net FireballFree Image оболочку) и загрузить изображение, как это:

Fireball.Drawing.FreeImage freeImage = new FreeImage(@"c:\test.pcx"); 
Image image = freeImage.GetBitmap();