2012-02-18 3 views
1

私はどこにでも見えましたが、この問題の解決策を見つけることはできません。イメージファイルをオブジェクトに保存する(後でファイルを必要としない)

私は情報を保存するために個人的なアプリを作っています.DBファイルに保存したいものの1つは、各エントリのサムネイルです。私はファイルから画像を読み込んでいますが、後で物理的にファイルが存在することを必要とせずにDBを保存できるようにしたいと考えています。言い換えれば、私は、ファイルから画像変数を分離したいが、その変数内に画像データを保持している。

私はこの問題に近づく方法がわからないので、実際に投稿するスニペットはありません。どんな助けでも大歓迎です!私は画像をロードするためにピクチャボックスを使用しています。オブジェクトに画像変数がありますが、その画像にファイルを保存すると、.jpgが選択された場所に.jpgが必要です。

編集:私はより具体的にする必要があります、私はSQLやそのようなものを使用していない、私は単にデータベースにファイルを格納するために使用されるオブジェクトをシリアル化しています。私はより一般的な意味で "db"を使用していると思います...

ありがとう!

答えて

2

あなたは、次のいずれかの方法試すことができます。

  1. 使用WPFとのAPIのすべての輸出が含まれているWICインターフェイス(WicCopためhttp://code.msdn.microsoft.com/wictoolsを参照してSystem.Windows.Media.Imaging名前空間
  2. 使用COM相互運用機能をC#)。
  3. ディスクから画像を読み込んで別のストリームに書き込んでDBに保存するなど、何か嫌なことをしたい場合は、System.Drawing.Imageクラスも役立ちます。
+0

私は通常私の他のオブジェクトコレクション(ストリームとbformatterを使用して)のようにファイルにシリアル化すると、私はオブジェクトを逆シリアル化するとき、そのファイルは私が元々あった必要はありませんそれをロードした? – SteelRiverSavior

+0

参照しているAPIはわかりませんが、一般的には「はい」です。「使用」を使用してファイルハンドルを閉じたか、ファイルストリームの.Close()を明示的に呼び出すと仮定してください。 – kalrashi

0

私が、その後は、Microsoft SQL Serverを使用していると、ファイルのサイズは最大(2ギグ)を超えない場合は、

を使用してますが...されているデータベースの種類に依存するように起こっていますVarBinary(max)を使用します。

次に、バイトをイメージソースに読み戻すだけで済みます。 Telerikは涼しいbinary image controlしか持っていないので、生のバイナリデータを投げることができます。

関連する問題