我想寫一個函數,將得到作爲輸入字符串fileName並返回ImageDrawing對象。
我不想在此函數中從磁盤加載位圖。相反,我想要進行某種懶惰的評估。 爲了找出尺寸,我使用位圖類。我該如何實現懶惰的位圖加載?
目前我有這樣的代碼:
public static ImageDrawing LoadImage(string fileName)
{
System.Drawing.Bitmap b = new System.Drawing.Bitmap(fileName);
System.Drawing.Size s = b.Size ;
System.Windows.Media.ImageDrawing im = new System.Windows.Media.ImageDrawing();
im.Rect = new System.Windows.Rect(0, 0, s.Width, s.Height);
im.ImageSource = new System.Windows.Media.Imaging.BitmapImage(new Uri(fileName, UriKind.Absolute));
return im;
}
- 是調用System.Drawing.Bitmap構造懶惰?
- 是否打電話給。尺寸懶惰?
- 是BitmapImage構造函數是否懶惰?
- 有沒有其他的方式可以讓我完全懶惰?
編輯: 有很多很好的答案,可能是有幫助的社區 - 使用懶惰類,並與任務打開它。
不過,我想把這個ImageDrawing一個DrawingGroup內部事後序列化,所以懶以及任務不是我的選擇。
相關:http://stackoverflow.com/questions/552467/how-do-i-reliably-get-an-image-dimensions-in-net-without-loading-the-image – 2012-01-10 15:58:31