Koray Durudogan Koray Durudogan - 1 year ago 228
ASP.NET (C#) Question

asp.net display image from byte array

I have a byte array and trying to display image from that.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Linq;

namespace RealPortableTerminal
public partial class resim : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
PortableTerminalDbEntities entity = new PortableTerminalDbEntities();
byte[] arr = (from b in entity.Sicil where b.Id == 31 select b.Fotograf).First();

Image rImage = null;
using (MemoryStream ms = new MemoryStream(arr))
rImage = Image.FromStream(ms);

It underlines FromStream and says 'System.Web.UI.WebControls.Image' does not contain a definition for 'FromStream'. It seems adding System.Data.Linq reference did not changed anything. Am I missing something ? Btw I am pretty sure I take byte array from database correctly.

Answer Source

Another way to do it is to convert your byte array into a base 64 string and assign that to the ImageUrl property of rImage, like so:

rImage.ImageUrl = "data:image;base64," + Convert.ToBase64String(arr);

You don't need the intermediate MemoryStream or a separate page...if the byte array is in an image format the browser supports, it will display. Good luck.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download