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

本文关键字:图像 可移植 类库 | 更新日期: 2023-09-27 18:35:52

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

但是,PCL 无法访问此类,因为它们以独立于平台的方式。因此,我想简单地将图像下载到一个byte[]数组中,然后由使用该库的应用程序使用。使用字节数组保存下载的图像是否存在任何潜在问题?

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

我不认为使用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; }
}