C#Base64string到JPEG图像

我正在尝试将Base64String转换为需要在本地保存的图像。

目前,我的代码能够保存图像,但是当我打开保存的图像,它说“无效的图像”。

在这里输入图像描述

码:

try { using (var imageFile = new StreamWriter(filePath)) { imageFile.Write(resizeImage.Content); imageFile.Close(); } } 

Content是一个包含Base64string的string对象。

所以用你提供的代码。

 var bytes = Convert.FromBase64String(resizeImage.Content); using (var imageFile = new FileStream(filePath, FileMode.Create)) { imageFile.Write(bytes ,0, bytes.Length); imageFile.Flush(); } 

首先,将base 64string转换为Image ,然后使用Image.Save方法。

从基本64string转换为Image

  public Image Base64ToImage(string base64String) { // Convert base 64 string to byte[] byte[] imageBytes = Convert.FromBase64String(base64String); // Convert byte[] to Image using (var ms = new MemoryStream(imageBytes, 0, imageBytes.Length)) { Image image = Image.FromStream(ms, true); return image; } } 

Image转换为基数64string:

 public string ImageToBase64(Image image,System.Drawing.Imaging.ImageFormat format) { using (MemoryStream ms = new MemoryStream()) { // Convert Image to byte[] image.Save(ms, format); byte[] imageBytes = ms.ToArray(); // Convert byte[] to base 64 string string base64String = Convert.ToBase64String(imageBytes); return base64String; } } 

最后,你可以方便地调用Image.Save(filePath); 保存图像。

 public Image Base64ToImage(string base64String) { // Convert Base64 String to byte[] byte[] imageBytes = Convert.FromBase64String(base64String); MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length); // Convert byte[] to Image ms.Write(imageBytes, 0, imageBytes.Length); Image image = Image.FromStream(ms, true); return image; } 

面前 :

  <Image Name="camImage"/> 

背部:

  public async void Base64ToImage(string base64String) { // read stream var bytes = Convert.FromBase64String(base64String); var image = bytes.AsBuffer().AsStream().AsRandomAccessStream(); // decode image var decoder = await BitmapDecoder.CreateAsync(image); image.Seek(0); // create bitmap var output = new WriteableBitmap((int)decoder.PixelHeight, (int)decoder.PixelWidth); await output.SetSourceAsync(image); camImage.Source = output; }