2016-05-02 11 views
1

Ich versuche, eine Base64-Zeichenfolge in ein Bild zu konvertieren und ImageView mit dem gleichen Bild festlegen. Ich weiß, wie man es in Java macht, aber ich habe Probleme in C#. Jeder hat eine Idee, wie man es in C# erledigt?Convert Base64 Zeichenfolge in Bitmap oder Bild Xamarin oder Android

Einige der Code, den ich ausprobiert habe;

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

Antwort

3

Base64 zu Bitmap:

public Bitmap Base64ToBitmap(String base64String) 
{ 
    byte[] imageAsBytes = Base64.Decode(base64String, Base64Flags.Default); 
    return BitmapFactory.DecodeByteArray(imageAsBytes, 0, imageAsBytes.Length); 
} 

Bitmap zu Base64:

public String BitmapToBase64(Bitmap bitmap) 
{ 
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
    bitmap.Compress(Bitmap.CompressFormat.Png, 100, byteArrayOutputStream); 
    byte[] byteArray = byteArrayOutputStream.ToByteArray(); 
    return Base64.EncodeToString(byteArray, Base64Flags.Default); 
} 
1

Bild Base64 String, Online-Konvertierung - here

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 Base64 String 
    string base64String = Convert.ToBase64String(imageBytes); 
    return base64String; 
    } 
} 

Base64 String Bild, Online-Konvertierung - here

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

Hallo, Vishwesh Ich habe diesen Code ausprobiert, ich bekomme den folgenden Fehler; 'Image' enthält keine Definition für 'FromStream'. Ich benutze Visual Studio 2015 Übrigens. –

+0

'MemoryStream ms = neuer MemoryStream (imageBytes);' ist genug. Sie müssen dazu nicht "schreiben". In diesem Formular müssen Sie auch die Position auf 0 setzen, bevor Sie an FromStream übergeben werden –

0

Ich gehe davon aus, dass Ihre verschlüsselten Daten sind etwas Bitmap-Format? Wenn ja, sollten Sie in der Lage sein, so etwas zu tun:

public Bitmap 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)) 
    { 
     Bitmap image = BitmapFactory.FromStream(ms, true); 
     return image; 
    } 
} 
Verwandte Themen