2016-08-10 2 views
2

Xamarin Android-Anwendung zum Speichern von Image in SQLite Von der Galerie (Bilder auf dem Handy verfügbar) .Meine Frage ist, wie zu Image Storage in SQLite? Und Image von SQLite abrufen? Ist nur Bildkomprimierung mit Bitmap-Funktion möglich?So speichern Sie Bild auf SQLite in Xamarin Android

+0

Check this: http://stackoverflow.com/questions/9357668/how-to-store-image-in-sqlite-database und versuchen, ähnlich zu schreiben Code in C# – piotrek1543

+0

Überprüfen Sie die Antwort unten. Ich habe die Antwort mit C# -Code aktualisiert. – fluffyBatman

Antwort

1

Die Grundidee zum Speichern/Bild Bitmaps in den meisten der DB folgt,

Shop fetch: Konvertieren der Bild-Bitmap in eine Base64String und speichern sie auf SQLite.

public static string Base64Encode(string plainText) { 
    var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText); 
    return System.Convert.ToBase64String(plainTextBytes); 
} 

abrufen: die Base64String Fetch und konvertieren wieder Bitmap.

public static string Base64Decode(string base64EncodedData) { 
    var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData); 
    return System.Text.Encoding.UTF8.GetString(base64EncodedBytes); 
} 
+0

ist Bilddateipfad in SQLite möglich? 'Datei imgFile = neue Datei ("/storage/emuliert/0/Bilder/CameraAppDemo/myPhoto_2eb3b135-5ad5-4a17-8836-13a9eca6bbb2.jpg "); Bitmap myBitmap = BitmapFactory.DecodeFile (imgFile.AbsolutePath); ' –

+0

Dies ist eine gängige Praxis in der Serverseite. Möglichst gut für Android. Eine Sache jedoch, wenn Benutzer das Foto manuell löscht, dann wird der Weg ungültig. Also, du musst eine weitere Schicht einchecken. – fluffyBatman

0

Sie können Ihr Bitmap-Bild als Byte [] in SQlite speichern. Für diese Operation sollten Sie Bitmap in Byte-Array konvertieren. Dieses Stück Code, konvertieren Bitmap byte []

var memoryStream = new MemoryStream(); 
bitmap.Compress(Bitmap.CompressFormat.Png, 0, memoryStream); 
imageByteArray = memoryStream.ToArray();