gpt4 book ai didi

c# - 如何在 C# 中更快地缩略图

转载 作者:行者123 更新时间:2023-12-05 01:48:57 25 4
gpt4 key购买 nike

无论在我的 ImageList 和 ListView 中使用的资源的使用情况如何,我都试图尽可能快地翻阅图像,这就是我目前正在做的事情,但它似乎很慢:

public Image toThumbs(string file, int width, int height)
{
image = null;
aspectRatio = 1;
fullSizeImg = null;
try
{
fullSizeImg = Image.FromFile(file);
float w = fullSizeImg.Width;
float h = fullSizeImg.Height;
aspectRatio = w / h;

int xp = width;
int yp = height;

if (fullSizeImg.Width > width && fullSizeImg.Height > height)
{
if ((float)xp / yp > aspectRatio)
{
xp = (int)(yp * aspectRatio);
}
else
{
yp = (int)(xp / aspectRatio);
}
}
else if (fullSizeImg.Width != 0 && fullSizeImg.Height != 0)
{
xp = fullSizeImg.Width;
yp = fullSizeImg.Height;
}

image = new Bitmap(width, height);
graphics = Graphics.FromImage(image);
graphics.FillRectangle(Brushes.White, ((width - xp) / 2), (height - yp), xp, yp);
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.DrawImage(fullSizeImg, new Rectangle(((width - xp) / 2), (height - yp), xp, yp));
graphics.Dispose();
fullSizeImg.Dispose();
}
catch (Exception)
{
image = null;
}
return image;
}

我不确定计算是否是减慢缩略图的计算或者正在使用的类本身很慢,如果是这种情况那么可以使用哪些其他替代方案可能是不同的计算或者我需要导入其他类或者是否有可以使用的第三方库或者我需要做一个 dll 导入什么的?请帮助我。

Edit: Just found a solution here http://www.vbforums.com/showthread.php?t=342386 it extracts a thumbnail from a file without reading the whole file. I was able to reduce the time about 40% when i used this.

最佳答案

您的计算发生在几分之一秒内。对 DrawImage 的调用很可能是其中最慢的部分(因为它正在进行缩放)。

如果您只需要这个缩略图一次,那么我认为这里没有太大的改进空间。如果您对同一张图片多次调用该方法,则应缓存缩略图。

关于c# - 如何在 C# 中更快地缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1789042/

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