2013-07-24 75 views
0

空我用下面的函數加載一個位圖圖像的BitmapImage的SourceStream是WPF

private BitmapImage fileNameBitMap(string filePath) 
{ 
    if (!string.IsNullOrEmpty(filePath) && File.Exists(filePath)) 
    { 
     try 
     { 
      BitmapImage bitmap = new BitmapImage(); 
      bitmap.BeginInit(); 
      bitmap.CacheOption = BitmapCacheOption.OnLoad; 


      bitmap.DecodePixelWidth = 200; 
      bitmap.UriSource = new Uri(filePath); 
      bitmap.CreateOptions = BitmapCreateOptions.IgnoreColorProfile; 

      bitmap.EndInit(); 
      image = bitmap; 
      return bitmap; 
     } 
     catch 
     { 
      return null; 
     } 
    } 
    return null; 
} 

當我調試bitmap.SourceStream我覺得等於空,我也找了FormatNotSupportedException被拋出。 我需要將BitmapImage存儲在流中,並將其轉換爲byte []。

+3

我猜你的意思是'BitmapImage.StreamSource'。當然它是'空',因爲你沒有設置它。你已經設置了'UriSource'。你爲什麼不直接從圖像文件(例如'File.ReadAllBytes)'讀取'byte []'? – Clemens

+0

我做到了:)這是一個很好的解決方案,非常感謝。 –

回答

1

您應該簡單地讀取圖像文件的內容爲byte[]

var bytes = File.ReadAllBytes(filePath);