gpt4 book ai didi

c# - Winforms清除位图图像?

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:01 25 4
gpt4 key购买 nike

我一直在尝试更改照片的大小。我看过很多网站:1 , 2 , 3 .

最后一个链接 (3) 至少会调整图像的大小,除非旧图像保留在调整后的图像后面。这是怎么回事?为什么?如果我最小化 winform 然后重新启动 winform,旧图像就会消失,我只剩下调整大小的版本。我如何摆脱旧图像?

有什么想法吗?

最佳答案

来自 C# Tutorial - Image Editing: Saving, Cropping, and Resizing 的第一个链接给了你代码。

是否有不使用它的理由?

private static Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;

float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;

nPercentW = ((float)size.Width / (float)sourceWidth);
nPercentH = ((float)size.Height / (float)sourceHeight);

if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;

int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);

Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;

g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();

return (Image)b;
}

不要忽略 InterpolationMode。这将使图像更好看。

此外,我认为您不想在此上下文中使用 CreateGraphics()。您可能想使用实际的位图来存储调整大小的图像,或者只使用要在其中显示图像的控件的绘制事件中的 Graphic 对象。

关于c# - Winforms清除位图图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963079/

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