I am currently working on an Paint-like WPF application and now stand before the problem how I enable my users to save the created images. Normally I would just save them to disk but in this application I have the requirement to later enable the user to create bigger “images” out of the already created ones. This would still be no problem with a normal filesystem approach but the user should also be able to search images by specific properties like categories/tags etc. and that would be difficult with a normal filesystem approach.
So I thought of some options I have for realizing what I want and now would like to know what you think of the approaches or if you even know a better one. The approaches are:
- Saving images in an internal database of the application (via SQLite or something similar)
- Saving images as normal files in the filesystem and keep an database in the application to reference these images (what happens if images were deleted by the user?)
- Saving images as normal files in the filesystem without extra database in the app (hard to filter them by category etc.)
Thanks!
Many programs (i.e. Aperture, Lightroom, Expression Media to name a few) store their images to disk and then maintain a metadata cache in a database. This seems like the most sensible approach for your application.