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.
![MVC]()
Now, if you look into the source of the page, you can see the base 64 string rendered as an image.
![MVC]()
Conclusion
I hope you learned how to display the image f the om byte array in MVC. Please post your comments and feedback below.