![](/img/trans.png)
[英]How do I convert a byte array back to an image consumable by a view in asp net core?
[英].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.