In a project I’m working on, images are sent over from a web service or are sitting on the users disk… both in an xml format. It’s easy enough to save anything as base64 encoded, but how do you get it back to an actual image object? It’s a little tricky.
Lets say you have your base64 string in a variable already. Well while it was stored in the xml file it could have gotten some extra characters in it… namely empty spaces and “\r\n”. We need to remove them first. Here is the function that will do it:
public string FixBase64ForImage(string Image)
{
System.Text.StringBuilder sbText =
new System.Text.StringBuilder(Image,Image.Length);
sbText.Replace("\r\n", String.Empty);
sbText.Replace(" ", String.Empty);
return sbText.ToString();
}
Now that the string it cleaned up the steps are:
- Convert the base64 string into a byte array.
- Convert the byte array into an in memory stream.
- Then finally convert the byte array into an image. This is actually a two step process (on one line of code).
if (ImageText.Length > 0)
{
Byte[] bitmapData = new Byte[ImageText.Length];
bitmapData = Convert.FromBase64String(FixBase64ForImage
(ImageText));
System.IO.MemoryStream streamBitmap = new
System.IO.MemoryStream(bitmapData);
Bitmap bitImage = new
Bitmap((Bitmap)Image.FromStream(streamBitmap));
}
That’s all there is to it!
Tip Submitted By: David McCarter
Discover more from dotNetTips.com
Subscribe to get the latest posts sent to your email.
