2017-02-17 1 views
0

私はデータベースからイメージをフェッチする方法(varbinary(MAX))を学び、それをイメージファイルに変換しようとする.NET学生です。私は、イメージをbyte []に​​変換してデータベースに保存することに成功しました。byte []からイメージを作成する

重大度コード説明プロジェクトファイルの行の抑制状態:

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メーカーがこれを言っていることです。これは私のコードは、これまでに戻って画像を取得しようとしています エラーCS0117 'Image'に の定義が含まれていません 'FromStream' ImageToDB..NETCoreApp、Version = v1.0 D:\ Kay \ ASP.NET MVC \ ImageToDatabase \ ImageToDB \ src \ ImageToDB \ Controllers \ HomeController.cs 40アクティブ

これは、名前空間System.Drawing(ない私自身のクラス)からのImageクラスである:

namespace System.Drawing 
{ 
    public abstract class Image 
    { 
     protected Image(); 
solution 
     public delegate bool GetThumbnailImageAbort(); 
    } 
} 

私の依存関係:私は、ウェブ上で切り抜いた例を見てみると

{ 
    "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は赤い波打ちを起こします。

私のコードからもっと見たいものがあれば教えてください。私はそれを持ってきます。

ご協力いただきありがとうございます。

+0

あなたは「これはImageクラスである」と言う - あなたはあなた自身のImageクラスを作成しました意味ですか?もしそうなら、それをしないでください...そうでなければ、明確にしてください。 (また、どのバージョンの.NETをターゲットにしているかをご記入ください。.NET Coreのようですが、どのバージョンですか? –

+0

申し訳ありません。私はそのクラスを作りませんでした。 – AllramEst

+3

[Cシャープネットの画像をバイトに変換する]の可能な複製(0120)をご覧ください。 –

答えて

0

私はケースをクラックします。私の解決策。

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})" /> 
関連する問題