Из Bmp в Png-8 (16bit) на C#

  • Автор темы WildDuck
  • Дата начала
W

WildDuck

#1
Добрый день, есть ли возможность конвертировать BMP в PNG-8 (16bit) и обратно средствами .NET?
Впринцепи подойдут и сторонние библиотеки.. но желательно сделать это своими силами..
Как конвертировать просто из BMP в PNG средствами NET я знаю.. но получается PNG-24 он слишком большой...
Или может ктонибудь сможет посоветовать другой вариант решения этой задачи.. в итоге требуется сделать
из картинки BMP ориентировочно 800 на 600 картинку занимающую как можно меньше места но с таким же разрешением,
естественно с потерей качества и быстро..

Пользуясь возможностью хочу спросить еще один вопрос..
как прочитать 8 и 16 битные BMP.. при открытии вылетает исключение...

вот код..
Код:
var screenShotBmp = new Bitmap(totalSize.Width, totalSize.Height,
PixelFormat.Format8bppIndexed); 

// Ниже с 24 и 32 работает, а в Format8bppIndexed меня смущает *Indexed
//.Format24bppRgb);
//.Format32bppArgb);

var screenShotGraphics = Graphics.FromImage(screenShotBmp); //Exception: A Graphics object cannot be created from an image that has an indexed pixel format.