Установите для свойства PixelOffsetMode значение HighQuality, чтобы лучше сочетаться с фоном по краям.
ьзование некоторого стандартного стандартного кода C # для изменения размера изображения и размещения его на цветном фоне
Image imgToResize = Image.FromFile(@"Dejeuner.jpg");
Size size = new Size(768, 1024);
Bitmap b = new Bitmap(size.Width, size.Height);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.FillRectangle(Brushes.Green, 0, 0, size.Width, size.Height);
g.DrawImage(imgToResize, new Rectangle(0,150,768, 570));
b.Save("sized_HighQualityBicubic.jpg");
Результат имеет забавный артефакт в 0-м и 1-м столбцах пикселей. Кажется, что 0-й столбец смешан с цветом фона, а 1-й столбец стал светлее.
Смотрите в левом верхнем углу увеличенное изображение для бикубических и бикубических.
..и HighQualityBilinear
Это сообщение на форуме, кажется, кто-то с той же проблемой:DrawImage с острыми краями
Звучит как ошибка для меня? Я могу понять, почему цвета смешиваются в верхней части изображения с измененным размером. Но смешивать цвета на левом / правом краях не имеет смысла. Кто-нибудь знает, как исправить эти артефакты?
Обновление: очень похожий разговор происходит в комментариях здесь:GDI + InterpolationMode