Как загрузить и получить изображение с помощью sqlite databse - PullRequest
0 голосов
/ 28 февраля 2019

Мой вопрос в Xamarin. Формы, использующие базу данных SQLite, могут загрузить изображение и получить его в том же месте (например, в профиле).

Я просматриваю Google, но не могу найти ничего подобногоэто можно сделать в xamarin.Forms с использованием локальной базы данных SQLite

1 Ответ

0 голосов
/ 28 февраля 2019

Да, это возможно.Посмотрите на этот небольшой пример:

Просто преобразуйте изображение в байтовый массив, вы можете использовать:

byte[] myimage = System.IO.File.ReadAllBytes("pathtoimage")

вставить изображение в базу данных sql lite db:

public bool InsertMessage()
{

    SqliteCommand cmd = new SqliteCommand(con);

        cmd.CommandText = "INSERT INTO Images(Data) VALUES (@img)";
        cmd.Prepare();

        cmd.Parameters.Add("@img", DbType.Binary, myimage.Length);
        cmd.Parameters["@img"].Value = myimage;
        cmd.ExecuteNonQuery();

        con.Close();
}

, чтобы извлечь изображение и сохранить его в файл:

 using(SqliteConnection con = new SqliteConnection(cs))
        {            
            con.Open();

            SqliteCommand cmd = new SqliteCommand(con);   
            cmd.CommandText = "SELECT Data FROM Images WHERE Id=1";
            byte[] data = (byte[]) cmd.ExecuteScalar();

            try
            {               
                if (data != null)
                { 
                    File.WriteAllBytes("woman2.jpg", data);
                    myimage = data
                } else 
                {
                    Console.WriteLine("Binary data not read");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }            

            con.Close();
        }

, если вы хотите сохранить изображение в растровое изображение var:

ByteArrayInputStream inputStream = new ByteArrayInputStream(myimage);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...