online imagen convertir cadena c# image base64 jpeg encode

convertir - C#Base64 Cadena a imagen JPEG



png image to base64 (4)

Estoy tratando de convertir un Base64String en una imagen que debe guardarse localmente.

Por el momento, mi código puede guardar la imagen, pero cuando abro la imagen guardada, dice "Imagen inválida".

Código:

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

El Content es un objeto de string que contiene la cadena Base64.


En primer lugar, convierta la cadena base 64 en una Image , luego use el método Image.Save .

Para convertir de la cadena base 64 a la 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; } }

Para convertir de Image a base 64 string:

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; } }

Finalmente, puede llamar fácilmente a Image.Save(filePath); para guardar la imagen


Entonces, con el código que ha proporcionado.

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


Frente:

<Image Name="camImage"/>

Espalda:

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; }


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; }