Ваша проблема не в методе GetThumbnailImage()
, а в том, как вы сохраняете файл. Вам необходимо указать уровень качества сохраняемого вами JPEG-файла, или, по-видимому, он всегда имеет очень низкое значение.
Рассматривайте этот код как руководство (он взят из старого проекта .NET 2.0; код все еще отлично работает, скомпилированный под 4.0, но в 4.0 может быть более прямой метод; у меня никогда не было причин проверять) *
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo jpegEncoder = null;
for (int x = 0; x < encoders.Length; x++) {
if (string.Compare(encoders[x].MimeType, "image/jpeg", true) == 0) {
jpegEncoder = encoders[x];
break;
}
}
if (jpegEncoder == null) throw new ApplicationException("Could not find JPEG encoder!");
EncoderParameters prms = new EncoderParameters(1);
prms.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 80L);
bitmap.Save(fileName, jpegEncoder, prms);