Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 77050

How to select image from gallery and save to sql database in xamarin

$
0
0

link from https://forums.xamarin.com/discussion/155962/how-to-save-and-retrive-image-from-sqlite.

Store: Convert the Image bitmap into a Base64String and store it to SQLite.
public static string Base64Encode(string plainText) { var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText); return System.Convert.ToBase64String(plainTextBytes); }

Retrieve: Fetch the Base64String and convert that to Bitmap again.
public static string Base64Decode(string base64EncodedData) { var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData); return System.Text.Encoding.UTF8.GetString(base64EncodedBytes); }

And how to select image from gallery and save to sql database in xamarin --
if like this, where I to implement these Base64Encode?
`
using Plugin.Media;
using Plugin.Media.Abstractions;
using System;
using Xamarin.Forms;
using SQLite;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace PersonListData
{
public class Person
{
[PrimaryKey, AutoIncrement]
public int IdSis { get; set; }
public string NamePerson { get; set; }
public byte[] PersonImg { get; set; }
}

async void SaveOnClik(object sender, EventArgs e)
{
    var person = (Person)BindingContext;
    await App.Database.SavePersonAsync(person);
    await Navigation.PopAsync();
}

async void PickPhotos(object sender, EventArgs e)
{
    if (CrossMedia.Current.IsPickPhotoSupported)
    {
        var file = await CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions
        {
            PhotoSize = PhotoSize.Medium,
        });
        if (file == null)
            return;

        image.Source = ImageSource.FromStream(() =>
        {
            var stream = file.GetStream();
            file.Dispose();
            return stream;
        });          
    }
    else
    {
        await DisplayAlert("Image error", ":( Hcant do thid.", "Ok");
        return;
    }

}
readonly SQLiteAsyncConnection _database;
public DataPerson(string dbPath)
{
    _database = new SQLiteAsyncConnection(dbPath);
    _database.CreateTableAsync<Person>().Wait();
}
public Task<List<Person>> GetPersonListAsync()
{
    return _database.Table<Person>().ToListAsync();
}
public Task<Person> GetPersonAsync(int id)
{
    return _database.Table<Person>()
    .Where(i => i.IdSis == id)
    .FirstOrDefaultAsync();
}
public Task<int> SavePersonAsync(Person person)
{
    if (person.IdSis != 0)
    {
        return _database.UpdateAsync(person);
    }
    else
    {
        return _database.InsertAsync(person);
    }
}
public Task<int> DeletePersonAsync(Person person)
{
    return _database.DeleteAsync(person);
}

}

`


Viewing all articles
Browse latest Browse all 77050

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>