F-Spot Hurts My Eyes

This is just a public complaint, because I'm too lazy to go file a bug report or something. I use F-Spot for managing my photos on my Ubuntu desktop. It's kind of cool and mostly does what I would expect it to. One thing that really bothers me though is how, when you are flipping through pictures, it shows each one blurry first, and then it come into focus. I suppose this is done for some kind of effect, because I've never seen any other photo software do this (gthumb and eog, to name a couple close competitors), but it drives me insane. I have bad eyes and have worn glasses since I was about 6 years old. Every time I flip to a new picture they strain to focus on it until it fully comes into focus on its own. If there is any way to make this stop, I'd love to hear about it.

And since I'm complaining about F-spot, I'll mention one other major beef I have with it (I've got a bad cold and am grumpy, forgive me). When you import photos, you choose a directory (or camera). When you make that choice it starts displaying all the photos in that directory and has a grayed out inactive button that says import. After a while it finishes and you can then highlight a subset of the photos in that directory and click on import. At this point, though, it has already imported every photo from that directory and your selection does nothing. The import button merely dismisses the import dialog. There seems to be no way to import only selected photos from a directory or camera. This is just dumb.

Phew. There. It feels good to get those off my chest. There a few other little complaints I have with f-spot, but overall, I really do like it.


Mathias Dahl said…
If you are also an Emacs user, you might want to check out image-dired, an extension that is part of Emacs 22. Read the docs here:


If you are running Emacs 21 you can try out Tumme instead (http://www.emacswiki.org/cgi-bin/wiki/Tumme), it is the old name for image-dired, before it was included in Emacs.
Bryan said…
Wow, I love emacs. I don't think my wife will like image-dired as much as F-spot though... :-)

In all seriousness, the pictures look grainy when it displays them, and it doesn't import from my camera. I suppose a little emacs lisp hacking could fix both of those though. Hmmm, should I learn C# and fix F-spot, or emacs lisp and fix image-dired... :-)
Mathias Dahl said…
Your wife clearly doesn't know what she is missing :)

About the graininess, I am not sure what the reason could be. Maybe the default thumbnail size of 100 pixels is simply too small for you? Try customizing the option
`image-dired-thumb-size' to something bigger. You have to delete your old thumbnail files to see any effect however, they are placed, by default, where `image-dired-dir' points.

What kind of "import" would you need? Left in image-dired is an old hack that I use (I wrote this package) to copy files from my mounted memory card to the folder where I keep all my images. It tries to give each file a unique name by prefixing the file name with the date taken. The command to do this is `image-dired-copy-with-exif-file-name' and it copies marked files in Dired to the dir pointed to by `image-dired-main-image-directory'. Using this I can easily "import" my latest images and browse them with image-dired, looking for photos to scrap.

Try it out and see. If you have any ideas for improvements, drop by at the emacs devel mailing list or gnu emacs help.
Anonymous said…
Initial blurriness = progressive loading.

Some images are encoded so that you can display a fuzzy version of the image without reading the whole file. That means you can quickly generate an initial view of the image.

If you do not use progressive loading (gThumb doesn't), then you have to wait until the software has read the entire image file. That can be noticeably slower.

The progressive loading is not meant to be an "effect", it is an attempt to speed up viewing.

- Mike
Bryan said…

It's not the thumbnails, but the larger views I get when I hit enter on the thumbnails. Maybe the jpeg compression on those is turned up too high or something?

I'll put trying out your import trick on my todo list (it's long right now, I was on vacation for a week and then got sick right when I got home...). But basically that sounds fine. I kind of like how F-spot puts them all in directories named for the date. Keeps things somewhat sane when you browse the photo directory without any "photo management" software.
Bryan said…

Yes, well, evidently I prefer the non-progressive loading. The blurriness is much more noticeable than any slowness, at least to me. Any way to turn it off?

I searched the mailing list archive a bit and I think I found someone else complaining about it too. It was meant with an, "I'll accept a patch" from the developers. Bummer.
Mathias Dahl said…
Aha, *those*! Well, I'm not sure why they are blurry. I use no special argument to the convert program, maybe one can specify a better quality setting, I don't know. I have never thought about it much as I mostly use image-dired/tumme as a browser, to see what images I want to keep, to tag them etc. If I want the full size version I do C-RET instead of RET, which opens the image in an external viewer (configurable). You can also provide a prefix argument to RET: C-u RET, to tell image-dired to not resize the image. Also, if you resize the window that display the sized image (making the thumbnail buffer smaller), the image will be sized to a larger size, maybe that will make it look better to you?

BTW, it would be trivial to change `image-dired-copy-with-exif-file-name' to "import" files to different folders, depending on the date taken. Now all images are copied to the same one. I like mine in the same folder (I have a couple of thousand images and it works well) so I never had the need. If you would be interested in this, come over to emacs devel or gnu emacs help. cu!
--- f-spot-
+++ f-spot-
@@ -274,7 +274,7 @@
ZoomFit ();

- progressive_display = true;
+ progressive_display = false;

if (prev != this.Pixbuf && prev != null)
prev.Dispose ();
@@ -291,7 +291,7 @@
Reload ();

- bool progressive_display = true;
+ bool progressive_display = false;
bool ShowProgress {
get { return progressive_display; }

Popular posts from this blog

SystemVerilog Fork Disable "Gotchas"

Git Rebase Explained

'git revert' Is Not Equivalent To 'svn revert'