gpt4 book ai didi

c# - InterpolationMode HighQualityBicubic 在调整大小后的图像边缘引入伪像

转载 作者:可可西里 更新时间:2023-11-01 08:56:55 24 4
gpt4 key购买 nike

使用一些非常常用的标准 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");

The result在第 0 列和第 1 列像素中有一个有趣的人工制品。第 0 列似乎与背景颜色混合,第 1 列变得更浅。

查看左上角放大的高质量双三次和双三次。

HighQualityBicubic

Bicubic

..和 HighQualityBilinear

HighQualityBilinear

这个论坛帖子似乎是有同样问题的人:DrawImage with sharp edges

对我来说这听起来像个错误?我可以理解为什么颜色会在调整后的图像顶部混合。但是混合左/右边缘的颜色没有意义。有谁知道防止这些伪像的修复方法吗?

更新:此处评论中正在进行非常相似的对话:GDI+ InterpolationMode

最佳答案

无耻地从this question中摘取答案,我发现这修复了它:

using (ImageAttributes wrapMode = new ImageAttributes())
{
wrapMode.SetWrapMode(WrapMode.TileFlipXY);
g.DrawImage(input, rect, 0, 0, input.Width, input.Height, GraphicsUnit.Pixel, wrapMode);
}

关于c# - InterpolationMode HighQualityBicubic 在调整大小后的图像边缘引入伪像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com