In this tutorial, I am going to explain how to display image from a byte array in ASP.NET MVC using C# .NET and VB.NET.
- Open Visual Studio and create a new MVC project.
- Once the project is loaded, right-click on Controllers folder and add a new Controller.
- Create Images folder in your project and add a sample image.
- Now, open the DemoController and add GetImageFromByteArray action method.
- Within the action method, place the code given below (Below, I have given the entire Controller code).
C#.NET Code
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
-
- namespace DemoProject.Controllers
- {
- public class DemoController : Controller
- {
-
- public ActionResult GetImageFromByteArray()
- {
-
- string imgPath = Server.MapPath("~/images/self-discipline.png");
-
- byte[] byteData = System.IO.File.ReadAllBytes(imgPath);
-
- string imreBase64Data = Convert.ToBase64String(byteData);
- string imgDataURL = string.Format("data:image/png;base64,{0}", imreBase64Data);
-
- ViewBag.ImageData = imgDataURL;
- return View();
- }
- }
- }
VB.NET Code
- Imports System.Collections.Generic
- Imports System.Linq
- Imports System.Web
- Imports System.Web.Mvc
-
- Namespace DemoProject.Controllers
- Public Class DemoController
- Inherits Controller
- ' GET: Demo/Image
- Public Function GetImageFromByteArray() As ActionResult
- ' Get image path
- Dim imgPath As String = Server.MapPath("~/images/self-discipline.png")
- ' Convert image to byte array
- Dim byteData As Byte() = System.IO.File.ReadAllBytes(imgPath)
- 'Convert byte arry to base64string
- Dim imreBase64Data As String = Convert.ToBase64String(byteData)
- Dim imgDataURL As String = String.Format("data:image/png;base64,{0}", imreBase64Data)
- 'Passing image data in viewbag to view
- ViewBag.ImageData = imgDataURL
- Return View()
- End Function
- End Class
- End Namespace
Now, let me explain what is there in the code.
- I read the image from the folder into an imgPath local variable.
- In the second step, I have converted the image into a byte array using ReadAllBytes method.
- And then, I have converted the byte array into base 64 string format using Convert.ToBase64String method.
- Now, I have appended data:image/png;base64 at the beginning of base64 string so that the browser knows that the src attribute value itself contains the image data.
- Finally, I have assigned this image data in the ViewBag and returned it to the View.
Now, add a new View to GetImageFromByteArray action method. And, add an image view. We can directly assign the image data from ViewBag to src attribute of the image tag like below.
- @{
- ViewBag.Title = "Asp.Net MVC Display image from byte array";
- }
-
- <h2>Asp.Net MVC Display image from byte array</h2>
- <img src="@ViewBag.ImageData">
Output
Now, if you run the program, you can see the output of how to display the image from the byte array.
Now, if you look into the source of the page, you can see the base 64 string rendered as an image.
Conclusion
I hope you learned how to display the image f the om byte array in MVC. Please post your comments and feedback below.