C# で PostgreSQL にラージオブジェクトとしてイメージを登録・表示する方法です。
Npgsql のヘルプにはファイルからイメージを読み取ってデータベースへ登録したり、データベースからファイルに書き出す方法は書いてありますが、データベースから直接 PictureBox にデータを流し込む方法が書いてありません。 以下のようにすると直接流し込めます。
NpgsqlTransaction transaction = myConnection.BeginTransaction();
LargeObjectManager lom = new LargeObjectManager(myConnection);
LargeObject lo = lom.Open(oid, LargeObjectManager.READWRITE);
Byte[] byteBLOBData = new Byte[0];
byteBLOBData = lo.Read(lo.Size());
MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
this.pictureBox1.Image = Image.FromStream(stmBLOBData);
lo.Close();
transaction.Commit();
0 件のコメント:
コメントを投稿