自分のサーバーに画像があります。これらの画像をダウンロードしてローカルデータベース(SQLiteを使用)に保存したい場合、これらの画像をローカルで使用します。SQLiteデータベースからビットマップを返すにはどうすればいいですか
私はSQLiteデータベースにビットマップとして画像を保存しましたが、そのデータベースからビットマップでもバイトとして取得する必要があります。
これは
はURLから画像を取得する。..私のコードです:私はそのidでそれを返すようにしたい
// 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
}
}
:ローカルデータベースを作成するために、SQLiteのを使用し
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;
}
。
thx私は自分のコードを変更しましたが、私と同じようです – AbdHayek