我正在编写一个使用Web API下载图像的库。我需要这个库可以在许多平台上使用,所以我选择了一个可移植的类库。通常我会使用Bitmap
中的System.Drawing
类型将下载的图像存储在内存中,然后传递给方法等。
但是,PCL因其独立于平台的方式无法访问此类。因此,我只想将图像下载到byte[]
数组中,然后应用程序使用该数组使用该数组。使用字节数组来保存下载的图像会有任何潜在的问题吗?
答案 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; }
}