КЕ>>Столкнулся с этой же проблемой, может подскажете как Вы ее решили?
А>К сожалению не могу уже вспомнить в каком проекте это было.
А>По моему я конвертацию я в итоге сделал вручную.
может в двух словах подскажете куда копать?
я похоже совсем неверно делаю. пробовал в gif сохранить, так тот вообще без вопросов какую бы я глубину цвета не указывал, сохраняет с 8й глубиной. никаких исключений или подобных ругательств. складывается впечатление что работает только tiff реализация и то только 24 и 32бита, на 8бит выскочило исключение.
делаю примерно следующее:
ImageCodecInfo Enc = GetEncoderInfo("image/bmp");
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.ColorDepth, 8L);
bool heightbigger = (img.Height >= img.Width);
int thheight = heightbigger ? 100 : img.Height * 100 / img.Width;
int thwidth = heightbigger ? img.Width * 100 / img.Height : 100;
using (Image thimg = img.GetThumbnailImage(thwidth, thheight, null, IntPtr.Zero))
{
thimg.Save(@"c:\1.bmp", Enc, encoderParams);
}
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
может кто заметит грубую ошибку или место, где я на шланг наступил и не могу с него сойти!