2014-05-14 111 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