我想將位元組陣列轉換為影像。我在 StackOverFlow 中搜索了很多帖子,找到了下面的代碼。
public Image ByteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms); // <-- Error here
return returnImage;
}
但是我在Image.FromStream 中得到一個錯誤是“Image”不包含“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; }
}
如何解決?期待收到答復。
uj5u.com熱心網友回復:
在你的ByteArrayToImage函式定義中,你說你將回傳一個 type 的類實體,Repository.Entities.Image但在函式體內你回傳一個 type 的類實體System.Drawing.Image。
您可以向Repository.Entities.Imageas添加另一個屬性System.Drawing.Image并在函式中設定它:
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 MyImage{get; set; }
}
public Repository.Entities.Image ByteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
return new Repository.Entities.Image {
MyImage= returnImage
}
}
現在您可以在您的代碼中使用您自己的 Image 類(如果是 type )的.MyImage屬性(其型別為System.Drawing.Image)Repository.Entities.Image。
此外,我總是喜歡將我的類命名為不同于預定義類的名稱(例如影像、檔案、路徑等)。如果您打算使用沖突的名稱,最好使用完整的命名空間來防止類混淆。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/397517.html
