How to convert image into byte[] and byte[] to image using C# in ASP.NET
Recently I worked on a code sample for converting the image to the byte array and convert it back to the image type in ASP.NET 2.0 application.
Here is the code sample:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class Default2 : System.Web.UI.Page
{
HttpPostedFile postedImage;
private static byte[] byteImageData;
protected void Page_Load(object sender, EventArgs e)
{
}
# region Converting Image to Byte
private static byte[] ReadImage(string p_postedImageFileName, string[] p_fileType)
{
bool isValidFileType = false;
try
{
FileInfo file = new FileInfo(p_postedImageFileName);
foreach (string strExtensionType in p_fileType)
{
if (strExtensionType == file.Extension)
{
isValidFileType = true;
break;
}
}
if (isValidFileType)
{
FileStream fs = new FileStream(p_postedImageFileName, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] image = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
return image;
}
return null;
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region Converting Byte to Image
private void byteArrayToImage(byte[] byteArrayIn)
{
System.Drawing.Image newImage;
string strFileName = GetTempFolderName() + "yourfilename.gif";
if (byteArrayIn != null)
{
using (MemoryStream stream = new MemoryStream(byteArrayIn))
{
newImage = System.Drawing.Image.FromStream(stream);
newImage.Save(strFileName);
img.Attributes.Add("src", strFileName);
}
lblMessage.Text = "The image conversion was successful.";
}
else
{
Response.Write("No image data found!");
}
}
#endregion
#region Getting Temporary Folder Name
private static string GetTempFolderName()
{
string strTempFolderName = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache) + @"\";
if (Directory.Exists(strTempFolderName))
{
return strTempFolderName;
}
else
{
Directory.CreateDirectory(strTempFolderName);
return strTempFolderName;
}
}
#endregion
protected void Button1_Click(object sender, EventArgs e)
{
postedImage = this.imgUpload.PostedFile;
byteImageData = ReadImage(postedImage.FileName, new string[] { ".gif", ".jpg", ".bmp" });
}
protected void Button2_Click(object sender, EventArgs e)
{
byteArrayToImage(byteImageData);
}
}