将图像文件存储在对象中(之后不需要该文件)

时间:2012-02-18 01:25:44

标签: c# image serialization storage

我到处寻找,但似乎找不到解决这个问题的方法。

我正在制作个人应用程序来存储信息,我希望存储在DB文件中的其中一项是每个条目的缩略图。我已经从文件中加载了图片,但我希望能够保存数据库,而不需要事后存在文件。换句话说,我想将图像变量与其文件分开,但仍然将图像数据保存在该变量中。

我真的没有要发布的片段,因为我不确定如何解决这个问题。任何帮助将不胜感激!我正在使用图片框来加载图片,并在我的对象中有一个图像变量,但是当我将文件存储在该图像中时,它仍然需要.jpg来自我选择它的位置......

编辑:我应该更具体,我没有使用SQL或类似的东西,我只是将用于存储我的数据库的对象序列化为文件。我想我在更普遍的意义上使用“db”......

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以尝试以下方法之一:

  1. 使用WPF和System.Windows.Media.Imaging命名空间
  2. 将COM Interop与WIC接口一起使用(有关WicCop的http://code.msdn.microsoft.com/wictools,其中包含C#的所有API的导出)。
  3. System.Drawing.Image课程对你有帮助,如果你想做一些像磁盘上的图像一样的小问题,并将其写入另一个流来保存在数据库中。

答案 1 :(得分:0)

这将取决于您使用的数据库类型,但......

如果您使用的是Microsoft SQL Server且文件大小不超过最大值(2 gig),那么我会使用VarBinary(max)

然后你只需要将字节读回图像源。 Telerik有一个很酷的binary image control,只允许你在它上面输入原始的二进制数据。