C#可移植类库 - 使用图像

时间:2015-01-01 00:05:35

标签: c# .net

我正在编写一个使用Web API下载图像的库。我需要这个库可以在许多平台上使用,所以我选择了一个可移植的类库。通常我会使用Bitmap中的System.Drawing类型将下载的图像存储在内存中,然后传递给方法等。

但是,PCL因其独立于平台的方式无法访问此类。因此,我只想将图像下载到byte[]数组中,然后应用程序使用该数组使用该数组。使用字节数组来保存下载的图像会有任何潜在的问题吗?

1 个答案:

答案 0 :(得分: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; }
}