加载高分辨率图像的快速方法

时间:2014-05-14 14:34:22

标签: c# image xaml image-processing

有一个名为Time Lapse Viewer的项目,它打开一个包含数千个图像的文件夹,并使用Timer为它们设置动画。

应用程序是用XAML编写的,下面的代码是我用来加载图像的代码。

bi = new BitmapImage();
bi.BeginInit();
bi.DecodePixelWidth = 720;
bi.CacheOption = BitmapCacheOption.OnLoad;
bi.UriSource = new Uri(this.ImageFilenames[this._image_index]);
bi.EndInit();
this.imgImage.Source = bi;

正在加载的图像来自数码单反相机,这些图像的分辨率为1536x2034,大小约为1.30 + MB。

上面的代码已经足够快,可以在720p中加载图像,但是有一些明显的滞后。据我所知,当图像第一次加载时,需要一些时间。

除了将图像加载为缩略图之外,还有更快的加载图像的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

  • 你可以在一个单独的线程中加载(BiatmapImage可以在冻结时从另一个线程访问 - 加载后调用Freeze)。
  • 您可以在多个线程中执行此操作

但就是这样。这就是大多数系统准备缩略图并将它们存储在单独的文件中以供重复使用的原因。