Как правильно сохранять Drawing.Image в Jpeg?
От: fmiracle  
Дата: 27.01.12 07:53
Оценка:
Потребовалось тут реализовать небольшой код по мелкой обработке картинок (изменение размеров, обрезка).
В целом возможностей System.Drawing вполне хватает.
Но странно ведет себя сохранение в JPEG — на некоторых картинках в результирующем изображении немного (но вполне заметно глазом) сдвигаются некоторые цвета (т.е. был малиновый, стал красно-фиолетовый). При том, что оригинал — так же jpeg.
При сохранении в bmp или png — все нормально.

Как быть и что делать, чтобы сохранялись оригинальные цвета?

Банальный:
var image = Bitmap.FromFile( sourceFileName ); 
image.Save( resultFileName, ImageFormat.Jpeg );


уже портит цветность.
пробовал и с заданием качества сжатия — без разницы, только четкость меняется.
так же пробовал при открытии передавать useEmbeddedColorManagement — никакого эффекта

Обработка и пересохранение той же картинки в jpeg в Paint.NET цветность не меняет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.