2014-05-14 78 views
0

有一个名为Time Lapse Viewer的项目,该项目打开一个包含数千个图像的文件夹,并使用Timer对它们进行动画处理。加载高分辨率图像的快速方法

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

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; 

正在加载的图像是从DSLR和这些图像具有1536x2034分辨率和约1.30 +大小的MB。

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

是否有更快的方式来加载图像,而不是将它们加载为缩略图?

谢谢。

回答

1
  • 您可以加载ina单独的线程(BiatmapImage可以从另一个线程被冻结时访问 - 加载后调用Freeze)。
  • 你可以做,在多线程

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

+0

你觉得有成千上万的BitmapImage对象怎么样? – jaysonragasa

+0

同样糟糕,但可能没有办法解决这个问题。当他们没有被显示时,你真的不需要他们在内存中,并且你可以从已经准备好的图像的优化存储中快速打开已存储的一个.... – TomTom