MonoTouch - 从Sqlite Database Blob中提取图像

时间:2011-04-03 11:02:34

标签: sqlite xamarin.ios blob

我正在尝试从Sqlite数据库中获取GIF / PNG / JPG图像。 Monotouch中有没有办法将Blob字段转换为图像?

我在猜测:

从SQLite获取数据byte []到内存流中:

MemoryStream blob = new MemoryStream(blobFromSQLite[]);

通过流将数据加载到NSData对象中:

UIImage.LoadFromData(NSData.FromStream(blob));

但是如何从sqlite字段中获取流?

1 个答案:

答案 0 :(得分:4)

最简单的方法是:

byte[] myBuffer = null;
using (SqliteCommand sqlCom = new SqliteCommand(sqlCon)) //assuming sqlCon is your SqliteConnection
{

    sqlCom.CommandText = "SELECT Images FROM MyTable WHERE Name = 'MyImage.png'";

    using (SqliteDataReader dbReader = sqlCom.ExecuteReader())
    {

        if (dbReader.HasRows)
        {

            while (dbReader.Read())
            {

                myBuffer = (byte[])dbReader["Images"];

            }

         }

    }
}

要将其作为UIImage,您根本不必使用流:

UIImage.LoadFromData(NSData.FromArray(myBuffer));