In the following example, I will demonstrate how to convert byte array to image and save in folder c# and vise Versa. It is very useful in many scenarios because byte arrays can be easily compared, compressed, stored, or converted to other data types.
How to convert byte array to image in c#
Recently I was looking for a sample code that could convert byte array[] to an image in C# ASP.Net. It’s very useful when you are writing an ASP.Net Web API method to upload an image or a file on the server.
To implement that first you need to create a memory stream from the byte[] array in your database and then use Image.FromStream. Remember to reference System.Drawing.Imaging and use a using block for the stream.
Find the C# source code below:-
using System.Drawing; using System.IO; /// <summary> /// Summary description for ImageConvertor /// </summary> public class ImageConvertor { public ImageConvertor() { } public Image ConvertByteArrayToImage(byte[] byteArrayIn) { using (MemoryStream ms = new MemoryStream(byteArrayIn)) { return Image.FromStream(ms); } } public byte[] ConvertImageToByteArray(Image image, string extension) { using (var memoryStream = new MemoryStream()) { switch (extension) { case ".jpeg": case ".jpg": image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); break; case ".png": image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png); break; case ".gif": image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Gif); break; } return memoryStream.ToArray(); } } } Default.aspx <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Android upload image to server sample code | web api</title> </head> <body> <form id="form1" runat="server"> <div> <h2>How to upload image on server in asp.net using c#</h2> <asp:FileUpload ID="FileUploadControl" runat="server" /> <asp:Button runat="server" ID="UploadButton" Text="Upload" OnClick="UploadButton_Click" /> <br /> <br /> <asp:Label runat="server" ID="StatusLabel" Text="Upload status: " /> <asp:Image ID="showImg" runat="server"></asp:Image> </div> </form> </body> </html> Default.aspx.cs using System; using System.Drawing; using System.IO; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void UploadButton_Click(object sender, EventArgs e) { if (FileUploadControl.HasFile) { try { string filename = Path.GetFileName(FileUploadControl.FileName); FileUploadControl.SaveAs(Server.MapPath("~/") + filename); var obj = new ImageConvertor(); System.Drawing.Bitmap bmpPostedImage = new System.Drawing.Bitmap(FileUploadControl.PostedFile.InputStream); byte[] imageByteArray = obj.ConvertImageToByteArray(bmpPostedImage, ".png"); System.Drawing.Image imageIn = obj.ConvertByteArrayToImage(imageByteArray); string saveImagePath = Server.MapPath("~/images/") + "Image1.png"; File.WriteAllBytes(saveImagePath, imageByteArray); StatusLabel.Text = "Upload status: File uploaded!'"; StatusLabel.ForeColor = Color.Red; } catch (Exception ex) { StatusLabel.Text = ex.Message; } } } }
You may also like:
Leave a Reply