Встроенный кодировщик файлов изображений .NET PNG - PullRequest
0 голосов
/ 13 ноября 2010

Существует ли такой кодировщик?GDI + one не очень полнофункциональный.Например, он всегда будет отображать изображения с 32bpp, даже если вы используете индексируемые в памяти 8bpp.

Я собираюсь начать писать множество PNG с веб-сервера, который на самом деле должен быть 8bppиндексируется с прозрачностью (PNG поддерживает альфа-уровни в палитре).Я хочу сделать это с собственным .NET (и небезопасным кодом) по соображениям производительности, поэтому, пожалуйста, не предлагайте ImageMagick или FreeImage .

Чем дольше этот вопросостается без ответа, дальше через PNG спецификацию я прочитаю:)

Ответы [ 2 ]

2 голосов
/ 13 ноября 2010

Используйте класс PngBitmapEncoder, он использует WIC под одеялом.Класс FormatConvertedBitmap помогает установить палитру и выполнить преобразование формата пикселей.Требуется как минимум .NET 3.0.

1 голос
/ 12 сентября 2011

Вы также можете проверить nQuant на http://nquant.codeplex.com. Если вы передадите ему свой экземпляр GDI + 32-битный BitMap, он вернет 8-битное 256-цветное индексированное изображение палитры. Если исходное изображение было 8 бит, это преобразование должно быть без потерь.

Это написанная ванильная библиотека C # без зависимостей.

...