DB-based collection feature
Martin Novak <[email protected]> Tue, 7 Sep 2004 02:12:42 +0200
| Newsgroups | gmane.comp.gnome.apps.gqview.user |
|---|---|
| Message-ID | <[email protected]> |
Hello, I know there's some work in progress to store some image (meta)data inside the images so that a user can find it from gqview (sorry, when I read about it I found it insufficient (for me) and can't find the details anymore...). I have a different approach which I'd like to realize and I'm looking for comments, ideas and maybe coders. Maybe my desired approach is completly wrong, as I haven't found this feature in any image viewer for X yet (haven't searched a lot - I like gqview). Background: As of today, many people have digicams, and take a lot of pictures. Many pictures means a lot of information, which needs to be managed properly. Managing this huge amount of information by name and date(i.e. creating directories by date and giving each picture a describing name) is not sufficient, if the user wants to see images which match a certain criteria (e.g. show me all pictures taken in Sweden since Jan 31, 2004, or, show me all images taken with the aperture 2.0). This means gqview should offer a method to find images by the data the images are carrying in the EXIF part and by some additional information the user adds to an image. Idea: Gqview offers a feature called 'collection', where a user can create and load a collection of images. So far a collection has to be created manually and is stored as a list of paths to images on the filesystem. A user can load a collection and view the images it is pointing to. This feature can be modified so that a collection is not created manually anymore, but created from a database query output instead, depending on the data a user enters into an input mask. The output should be in the same format as a collection is used at the present - a list of paths to files. Technical details: As the collection feature already has bindings to the displaying parts of the gqview code one would only need to create new menuitems for the gui and replace the file load routines with the database access routines - this is pretty straightforward. The database shouldn't store the images themselves, only the paths to them and the image data + metadata (I think the database should store the EXIF data + the additional information added by the user - retrieving EXIF data in realtime might? slow down the query process significanly) User interaction would happen in two ways: In SQL terms a user would need a SELECT mask to search for images matching a certain criteria. Here, most of the values could be hardcoded (e.g. date or aperture). The user should be able to select them from dropdown menus. There also needs to be a metadata input field (image description field) which should accept a number of keywords describing the image. The second way is the INPUT mask. It should extract the EXIF data from the image (if there is any) and fill in the proper fields (which might not be always that easy due to the known EXIF format problems) automatically, or allow the user to input the information. Additionally there needs to be a field to allow the user to enter metadata about the image. In both masks all fields should be optional. A query without any input should return a collection of all images in the database. I'm sure there are a lot of other features which could be added (e.g. a 'private' checkbox which doesn't include images unless a 'private' checkbox is checked in the SELECT mask -> images could be marked as prive in order to hide them from 'public' dia shows) but this is not a subject of the general design. Conclusion: Work which needs be done includes: - General design definition - implementation through the collections feature is just one idea - Useful query attributes - DB communication - is quite straightforward mysql/postgres (maybe even a generic db interface?)) - Creation of the INSERT mask (probably the biggest work - next/prev buttons'n'stuff (a lot can be copied from image properties code)) - SELECT mask (should be straightforward, too) Misc: - I'd be happy if anyone would do the GUI stuff - my gtk days are over since 1.2.10 :) Anyway, I hope someone out there likes the idea - it'd be cool if this got added to the main source tree (once it gets coded). I'm going to code against 1.4.3. bye, Martin Novak -- alais alias=alais ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click