2015-01-01 54 views
1

我正在編寫一個使用Web API下載圖像的庫。我需要這個庫在許多平臺上可用,所以我選擇了一個可移植的類庫。通常我會使用System.Drawing中的Bitmap類型將下載的圖像存儲在內存中,然後傳遞給方法等。C#可移植類庫 - 使用圖像

但是,PCL由於其平臺無關的方式而無法訪問此類。因此,我正在考慮簡單地將圖像下載到byte[]陣列中,然後由應用程序使用該庫。使用字節數組來保存下載的圖像會有什麼潛在的問題嗎?

+0

我看不出任何將圖像存儲在byte []中的問題。 – Mayank

回答

3

我不認爲在使用byte[]存儲圖像時存在任何主要的潛在問題。

我只能想到的一件事是將圖像轉換爲byte[]並返回的潛在開銷。

此外,我想不出任何更好的方式來存儲圖像,然後在byte[]

另外,您可以爲數據類編寫擴展方法,該數據類包含byte[]以返回Bitmap,您可以在其中使用它。

public static class DataClassExtensions 
{ 
    public static BitmapImage GetImage(this DataClass data) 
    { 
     if(data == null || data.ImageArray == null) return null; 

     using (var ms = new System.IO.MemoryStream(data.ImageArray)) 
     { 
       Bitmap image = (Bitmap)Image.FromStream(ms); 
       return image; 
     } 
    } 
} 

public class DataClass 
{ 
    public byte[] ImageArray { get; set; } 
}