2015-01-01 57 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; } 
}