C# 从字节[]创建图像
我是一名.NET学生,试图学习如何从数据库(varbinary(MAX))获取图像并将其转换为图像文件。我已成功地将图像转换为字节[],并将其保存到数据库中。这是我到目前为止试图恢复图像的代码:C# 从字节[]创建图像,c#,arrays,image-processing,asp.net-core-mvc,C#,Arrays,Image Processing,Asp.net Core Mvc,我是一名.NET学生,试图学习如何从数据库(varbinary(MAX))获取图像并将其转换为图像文件。我已成功地将图像转换为字节[],并将其保存到数据库中。这是我到目前为止试图恢复图像的代码: public IActionResult Index() { var kund = DbContext.Kunder.SingleOrDefault(p => p.KundId == 2); byte[] byteImage = kund.Bild
public IActionResult Index()
{
var kund = DbContext.Kunder.SingleOrDefault(p => p.KundId == 2);
byte[] byteImage = kund.Bild;
Image image = byteArrayToImage(byteImage);
return View();
}
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
我所知道的问题是Visul Studio告诉我:
严重性代码说明项目文件行抑制状态
错误CS0117“图像”不包含的定义
“FromStream”ImageToDB..NETCoreApp,版本=v1.0 D:\Kay\ASP.NET
MVC\ImageToDatabase\ImageToDB\src\ImageToDB\Controllers\HomeController.cs 40处于活动状态
这是命名空间System.Drawing中的Image类(不是我自己的类):
我的依赖项:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Microsoft.EntityFrameworkCore": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
},
"tools": {
"BundlerMinifier.Core": "2.0.238",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
当我在网络上查看不同的示例时,我经常看到这个解决方案,但当我尝试使用它时,FromStream得到一个红色的波形
告诉我,如果你还想从我的代码中看到什么,我会把它带来
提前感谢所有的帮助我破案了。我的解决方案
public IActionResult Index()
{
var kund = DbContext.Kunder.SingleOrDefault(p => p.KundId == 1);
//byte[] byteArray = DbContext.Kunder.Find(kund).Bild;
byte[] byteImage = kund.Bild;
return File(byteImage, "image/jpg");
}
看法
@model-ImageToDB.Models.Kund
当你说“这是图像类”时,你的意思是你已经创建了自己的图像类吗?如果是这样,不要那样做。。。如果没有,请澄清。(另外,请说明您的目标是.NET的哪个版本。它看起来像是.NET核心,但它是哪个版本?)问题是,您使用的是哪个图像。我看不到您的“使用”定义。你确定这是系统绘图的图像吗?对不起。我没有创建那个类。将澄清@MAdeelKhalid问题的可能重复与.NET核心相关,而与.NET无关,它们是不同的,相同的答案不适用于两者。
public IActionResult Index()
{
var kund = DbContext.Kunder.SingleOrDefault(p => p.KundId == 1);
//byte[] byteArray = DbContext.Kunder.Find(kund).Bild;
byte[] byteImage = kund.Bild;
return File(byteImage, "image/jpg");
}
@model ImageToDB.Models.Kund
<img src="@Url.Action("RenderImage", new { id = Model.Bild})" />