我的服务器上有图像我想下载这些图像并将它们存储在本地数据库中(使用 SQLite)然后我想在本地使用这些图像。
所以我已经将图像作为位图存储到我的 SQLite 数据库中,我需要从该数据库中检索它作为位图而不是字节。
这是我的代码..
从 url 获取图片:
private Bitmap GetImageBitmapFromUrl1(string url)
{
Bitmap imagebitmap = null;
using (var webClient = new WebClient())
{
var imageBytes = webClient.DownloadData("..." + url);
if (imageBytes != null && imageBytes.Length > 0)
{
imagebitmap = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
}
}
return imagebitmap;
}
使用 SQLite 创建本地数据库:
// SQLite.. Creating database to store images
private class MainDatabase
{
// Constructor
public MainDatabase()
{
if(!System.IO.File.Exists(folder))
{
var db = new SQLiteConnection(folder);
db.CreateTable<Image>();
}
}
// Create database
string folder = System.IO.Path.Combine
(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal),
"imagesDatabase.db");
// Create Table
[Table("Image")]
public class Image
{
[Column("_id"), PrimaryKey , AutoIncrement]
public int _id { set; get; }
[Column("_image")]
public Bitmap _image { set; get; }
}
//Insert data
public void Insert(Bitmap image)
{
var db = new SQLiteConnection(folder);
var imageColumn = new Image();
imageColumn._image = image;
db.Insert(imageColumn);
}
//Retrieving data
public Bitmap GetImageById(int id)
{
var db = new SQLiteConnection(folder);
var image = from p in db.Table<Image>()
where p._id == id
select p._image;
return image; // doesn't work
}
}
我想通过它的 id 返回它。