簡體   English   中英

.net 內核:如何將字節數組轉換為圖像?

[英].net core: How to convert byte array to image?

我想將字節數組轉換為圖像。 我在 StackOverFlow 中搜索了很多帖子,找到了下面的代碼。

public Image ByteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    Image returnImage = Image.FromStream(ms); //  <-- Error here
    return returnImage;
}

但是我在Image.FromStream is 'Image' does not contain a definition for 'FromStream'中得到一個錯誤,並且找不到有關如何解決此問題的任何信息。
有一個用戶在 9 多年前和我有同樣的錯誤,但仍然沒有答案。
我找到了一種方法是:

public Image ByteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    Image returnImage = System.Drawing.Image.FromStream(ms); // <-- Add System.Drawing. here
    return returnImage;
}

還有一種方式:

public Image ByteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms); // <-- Add System.Drawing. here
    return returnImage;  //  <-- Error here
}

但是這兩種方法都會產生一個新錯誤:無法將類型 'System.Drawing.Image' 隱式轉換為 'Repository.Entities.Image'
這是我在Repository.Entities中的圖像文件

public partial class Image
{
    public int Id { get; set; }
    public int? IdObj { get; set; }
    public string Url { get; set; }
    public sbyte? Thumbnail { get; set; }
    public string Type { get; set; }
}

如何解決? 期待收到答復。

In your ByteArrayToImage function definition you are saying that you will return a class instance of type Repository.Entities.Image but within the function body you are returning a class instance of type System.Drawing.Image .

您可以將另一個屬性添加到您的Repository.Entities.Image作為System.Drawing.Image並將其設置在 function 中:

public partial class Image
{
    public int Id { get; set; }
    public int? IdObj { get; set; }
    public string Url { get; set; }
    public sbyte? Thumbnail { get; set; }
    public string Type { get; set; }
    public System.Drawing.Image Image {get; set; }
}

public Image ByteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms); 
    return new Repository.Entities.Image {
        Image = returnImage
    }
}

現在您可以使用自己的 Image class Repository.Entities.Image.Image屬性

如果我是你,我會將我的類命名為不同於預定義類(例如圖像、文檔、路徑...等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM