Использование некоторого довольно стандартного С# кода для изменения размера изображения и размещения его на цветном фоне
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