gpt4 book ai didi

c# - 以最小的延迟快速显示非常高分辨率图像的缩略图

转载 作者:太空狗 更新时间:2023-10-29 18:21:28 26 4
gpt4 key购买 nike

我需要在控件中显示高分辨率图像的预览缩略图以供用户选择。我目前使用 ImageListView加载图像。这适用于中低分辨率图像。但在显示超高分辨率图像的缩略图时会出现明显的延迟。示例图像可以从 https://drive.google.com/open?id=1Qgu_aVXBiMlbHluJFU4fBvmFC45-E81C 下载。

图像大小约为 5000x3000 像素,大小约为 12 MB。使用此图像的 1000 个副本可以重现此问题。

问题截屏上传到这里

https://giphy.com/gifs/ZEH3T3JTfN42OL3J1A

图像是使用后台 worker 加载的

foreach (var f in filepaths)
{
imageListView1.Items.Add(f);
}

1. 为了解决这个问题,我尝试调整大分辨率图像的大小并将调整后的图像添加到 ImageListView ...但是调整大小会消耗大量时间并且缩略图生成速度很慢。

Bitmap x = UpdatedResizeImage2(new Bitmap(f), new Size(1000, 1000));
string q = Path.GetTempPath() + Path.GetFileName(f);
x.Save(Path.GetTempPath() + Path.GetFileName(f));
x.Dispose();
imageListView1.Items.Add(Path.GetTempPath() + Path.GetFileName(f));

2. 我也尝试过 Image.CreateThumbnail 方法,但这也很慢。

有没有更好的方法来解决这个问题?

最佳答案

我建议使用图像处理库,例如 ImageMagick。

ImageMagick 已优化此功能,您拥有 Magick.NET nuget .NET 包。

简单明了:

var file = new FileInfo(@"c:\temp\input.jpg");

using (MagickImage image = new MagickImage(file))
{
{
image.Thumbnail(new MagickGeometry(100, 100));
image.Write(@"C:\temp\thumbnail.jpg");
}
}

我做的例子:

enter image description here

以下是一些可能有用的文档和引用资料:

关于c# - 以最小的延迟快速显示非常高分辨率图像的缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875015/

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