我目前正在开发一个类似Paint的WPF应用程序,现在站在问题之前我如何让用户保存创建的图像。通常我会将它们保存到磁盘,但在此应用程序中,我需要稍后使用户能够从已创建的“图像”中创建更大的“图像”。对于普通的文件系统方法,这仍然没有问题,但用户还应该能够通过类别/标签等特定属性搜索图像,并且使用普通的文件系统方法会很困难。
所以我想到了我想要实现我想要的一些选择,现在想知道你对这些方法的看法,或者你是否知道更好的方法。方法是:
谢谢!
答案 0 :(得分:1)
我认为SQLITE将是一个不错的选择。完全支持版本3以及BLOB,因此您可以考虑使用SQLITE。
答案 1 :(得分:1)
许多程序(即Aperture,Lightroom,Expression Media等)将其图像存储到磁盘,然后在数据库中维护元数据缓存。这似乎是适合您应用的最明智的方法。
答案 2 :(得分:1)
您可以将文件保存到文件系统,直接保存或读取元数据。 Windows 7 / Vista中的应用程序之外的用户也可以使用此功能...我认为它称为图像标记。您必须解析XML。
很好的例子: http://johndyer.name/post/2006/09/01/Quick-C-Vista-Photo-Tag-Reader.aspx
答案 3 :(得分:0)
我会选择第二种方法并使用FileSystemWatcher跟踪程序运行时的更改,并在启动期间启动同步以跟踪自上次运行应用程序以来的更改。
SqlLite或SQL Compact Editio都是本地数据库跟踪元数据的不错选择。
答案 4 :(得分:0)
将图像存储在数据库中当然是可能的。您实际上可以存储图像流,因为它将保存到文件以节省空间。在阅读时,您只需使用流阅读器功能解压缩。
这没有其他两个解决方案的问题(处理删除文件,按类别查找文件)。
您可以使用文件系统保存到文件,方法是根据您的类别创建文件夹和子文件夹,但这不允许您灵活地为每个文件设置多个类别。