4

SqLite データベースに jpg 画像を保存したいのですが、現在このコードを使用しています。

public byte[] ImageToByte(Image image, System.Drawing.Imaging.ImageFormat format)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                image.Save(ms, format);
                byte[] imageBytes = ms.ToArray();
                return imageBytes;
            }
        }
void btn_click()...
{
                photo = new Bitmap("invoker.jpg");
                pic = ImageToByte(photo, System.Drawing.Imaging.ImageFormat.Jpeg);
                SaveImage(pic);
}

更新

void SaveImage(byte[] imagen)
        {
            string conStringDatosUsuarios = @" Data Source = \bang.sqlite3 ;Version=3";
            SQLiteConnection con = new SQLiteConnection(conStringDatosUsuarios);
            SQLiteCommand cmd = con.CreateCommand();
            cmd.CommandText = String.Format("INSERT INTO tbl_pictures (record_id, pic) VALUES ('1', @0);");
            SQLiteParameter param = new SQLiteParameter("@0", System.Data.DbType.Binary);
            param.Value = imagen;
            cmd.Parameters.Add(param);
            con.Open();

            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (Exception exc1)
            {
                MessageBox.Show(exc1.Message);
            }
            con.Close();
        }
4

3 に答える 3

2

I would think that creating a Bitmap from a jpg is the step causing the size increase. Actually, i'm surprised it's just a 2x size increase!

According to wikipedia ( http://en.wikipedia.org/wiki/JPEG#Sample_photographs ), the compression ratio can range from 2.6x to 46x and up. ;)

于 2013-05-25T14:47:55.233 に答える
1

さて、Simonは解決策を見つけました (答えではありません)。しかし、彼は最終的な回答を投稿しませんでした。解決策は次のとおりです。

C# コードを使用し、.NET プログラム内で空の DB を作成します (サードパーティを使用して DB を作成しないでください)。

これが彼が使用したコードスニペットです

とにかく、私はまだ完全な答えを待っています.サードパーティのツールを使用してDBを作成すると、SQLiteが元の2倍のサイズで画像を保存するのはなぜですか? また、.NET 内に作成された DB との違いは何ですか?

于 2013-05-31T07:32:50.577 に答える
0

たぶん、このようなものが役立つはずです: DBに保存するために画像をシリアル化/逆シリアル化します

この質問を参照しました:C#を使用してデータベースに画像を保存する方法

于 2013-05-12T18:11:23.830 に答える