InterpolationMode HighQualityBicubic apresenta artefatos na borda de imagens redimensionadas
Usando algum código C # padrão de ações para redimensionar uma imagem e colocá-la em um plano de fundo colorido
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");
O resultado possui um artefato engraçado na 0ª e na 1ª colunas de pixels. A coluna 0 parece estar misturada com a cor do plano de fundo e a 1ª coluna ficou mais clara.
Veja o canto superior esquerdo ampliado para obter alta qualidade bicúbica e bicúbica.
..e HighQualityBilinear
Esta postagem no fórum parece ser alguém com o mesmo problema:DrawImage com bordas nítidas
Parece um bug para mim? Entendo por que as cores se misturam na parte superior da imagem redimensionada. Mas misturar as cores nas bordas esquerda / direita não faz sentido. Alguém sabe de uma correção para impedir esses artefatos?
Atualização: conversa muito semelhante acontecendo nos comentários aqui:GDI + InterpolationMode