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);
}
}
Comments
Anonymous
January 18, 2008
hi, I am also doing same application but i am not getting either GetTempFolderName() method or UIUtilities.GetTempFolderName().getting following error .The name 'GetTempFolderName' does not exist in the current context . pls give some advice very urgent 4 geting a job...Anonymous
January 18, 2008
hi, I am also doing same application but i am not getting either GetTempFolderName() method or UIUtilities.GetTempFolderName().getting following error .The name 'GetTempFolderName' does not exist in the current context . pls give some advice very urgent 4 geting a job to linuak@gmail.comAnonymous
February 24, 2008
pls give me the code on convert the picture in byteAnonymous
March 17, 2008
I have uploaded the code sample used for the project which shows the conversion from image to byte and vice-versa. The temp folder is nothing but the location where the image files are being stored temporalily. In my machine the location is C:\Documents and Settings\vijay\Local Settings\Temporary Internet Files
Hope this helps!Anonymous
July 02, 2008
I am also doing same application but iam getting error with the function System.Drawing.Image.FromStream(stream); "The parameter is not valid"Anonymous
November 27, 2008
I also had the "parameter is not valid" error... I'm just trying to use the code that creates the image from the memory stream.Anonymous
December 03, 2008
Thank you.. This is very handy.Anonymous
February 15, 2009
Hi, Is there any way in .Net 1.0 other than saving to physical files? FromStream is not supported for 1.0 Thanks, PriyaranjanAnonymous
June 16, 2009
I am trying the code to convert image to byte[]. It's a good codeAnonymous
September 09, 2009
i am getting error when converting image to byte... Could not find file 'C:Program FilesMicrosoft Visual Studio 9.0Common7IDEarrow.GIF'.Anonymous
December 28, 2009
hello, i am working with similar application in asp.net. here, i have stored images into sql data source with datatype image. it stores the image in binary format. now while retrieving image back from database, i have to get it in image tool on my web page. but the image can be set just by imageurl property. Now, the problem is- to give Image tool the url of a byte array. can you please help me.. thanks in advance...Anonymous
February 04, 2010
I have a to take a screen shot of an web page without using any 3rd party control. Im able to convert to bytes through webclient. furthur im struct with the exception 'parameter not valid'. can i get any help on this. WebClient objWebClient = new WebClient(); string strURL = Request.Url.AbsoluteUri; byte[] bytes = objWebClient.DownloadData(strURL); System.Drawing.Image newImage; MemoryStream ms = new MemoryStream(bytes ); // getting error at this point. newImage = System.Drawing.Image.FromStream(stream); newImage.Save(strFileName); -- C#, ASP.NET thanks & regards.Anonymous
March 11, 2010
i want to create a crystal report in vs 2008 the table which is connected through the report is having field barcode is of binary type containing image in binary format i want to change its type into image(jpg) in my crysta report what is the solution for thatAnonymous
March 21, 2010
The comment has been removedAnonymous
May 09, 2010
i am also getting error when converting image to byte... Could not find file 'C:Program FilesMicrosoft Visual Studio 9.0Common7IDEarrow.GIF'. please help me to solve it...Anonymous
May 25, 2010
@sadhana singh - please see my reply posted on 17 Mar 2008 9:43 AM .Anonymous
May 25, 2010
@Aini - please see my reply posted on 17 Mar 2008 9:43 AM .Anonymous
August 24, 2010
This was very useful and educational... Thank youAnonymous
September 08, 2010
hi dear peps can this be don using c++ or java,i don't quite understand c# nor ASP.NET.i really need help in converting images to its bytes and vis-va sa.i can be reached via jesusebube@yahoo.com,jesusebube@hotmail.com.Anonymous
September 18, 2011
Converting Images to Text using Office 2007Anonymous
September 18, 2011
Converting Images to Text using Office 2007 using c#? pls help me pratbha.sharma9@gmail.comAnonymous
March 08, 2012
Thanks For that nice code..i have used your concept on my Image Cropping utility. In my utility i dont want to store the image in any folder or physical path on my server. I am saving my images in byte array. Problem is that my solution runs successfully on my System(Windows 7 Professional) but when i host it on my local server (windows Server 2008 Enterprise) and try to run the solution the given Error occurs: .... <Data>NT AUTHORITYNETWORK SERVICE</Data> <Data>FileNotFoundException</Data> <Data>Could not find file 'c:windowssystem32inetsrvimagesCANK42RX.jpg'.</Data> ..... I think there is any problem with getting the string strTempFolderName = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache) + @""; Please suggest any solution how get right path...if u need any other information please ask ...Anonymous
June 21, 2012
I want show the binary image into repeater control in asp.net can anyone provide me the code for it...Anonymous
June 21, 2012
Below is my code i dont knw how to show it repeater image control plz help me for next step of this code... SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString); con.Open(); SqlCommand cmd = new SqlCommand("select * from Products", con); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); if (ds.Tables[0].Columns.Count>0) { byte[] image = (byte[])ds.Tables[0].Rows[0]["Product_Image"]; MemoryStream ms=new MemoryStream(image); System.Drawing.Image imgFromGB = System.Drawing.Image.FromStream(ms);Anonymous
November 19, 2012
I am able to run to covert but image metadata information is lost. any idea so that we can retain metadata information.Anonymous
February 05, 2013
Thanks Vijay this helped me to reach my goal.Anonymous
February 24, 2013
@[267642143271329:0] @[311722825508110:0]Anonymous
November 12, 2013
Throws error when i convert Image to Byte.. Could not find file 'C:Program Files (x86)Common FilesMicrosoft SharedDevServer10.0arrow.GIF'. ???Anonymous
November 23, 2013
The variable img does not exist in current context. Nothing more annoying than a solution that is like 90% complete with a couple of errors. ) :Anonymous
July 15, 2014
The comment has been removedAnonymous
April 22, 2015
plz gave solution with proper output. nd aspx page alsoAnonymous
May 21, 2015
Thanks..... This is wonderful and simple to go.....Anonymous
November 03, 2015
how to convert the image to binary valueAnonymous
January 02, 2016
Hi sir, I'd like to read an binary image file by specific width and height, say 640x480. but I'm new for C# so can you advise code for this, please?