Using a string, you can get data loss, I just send an example of converting an image to a byte array and an array to an image again, and after an image to a byte array, to a string and vice versa, without data loss.
MemoryStream ms = new MemoryStream(); Image.FromFile(@"C:\..\..\..\img.jpg").Save(ms,ImageFormat.Jpeg); byte[] bytes = ms.ToArray(); MemoryStream ms1 = new MemoryStream(bytes); Image NewImage = Image.FromStream(ms1); NewImage.Save(@"C:\..\..\..\img1.jpg");
try this and it can help you create what you need.
trying to convert to string and vice versa, better to use base64.
MemoryStream ms = new MemoryStream(); Image.FromFile(@"C:\..\..\..\img.jpg").Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg); byte[] bytes = ms.ToArray(); string byteString = Convert.ToBase64String(bytes); byte[] NewBytes = Convert.FromBase64String(byteString); MemoryStream ms1 = new MemoryStream(NewBytes); Image NewImage = Image.FromStream(ms1);
This should give you the result you need.
MemoryStream ms = new MemoryStream(); Image.FromFile(@"C:\..\..\..\img.jpg").Save(ms,ImageFormat.Jpeg); byte[] bytes = ms.ToArray(); string byteString = Convert.ToBase64String(bytes);
then when you pass this line to your method ...
public Image stringToImage(string inputString) { byte[] NewBytes = Convert.FromBase64String(inputString); MemoryStream ms1 = new MemoryStream(NewBytes); Image NewImage = Image.FromStream(ms1); return NewImage; }
terrybozzio
source share