Alley in Pisa, Italy

by Lars Kotthoff

submit your photo


Hall of Fame
View past winners from this year

Please participate in Meta
and help us grow.

Take the 2-minute tour ×
Photography Stack Exchange is a question and answer site for professional, enthusiast and amateur photographers. It's 100% free, no registration required.

I am looking for a software that allows me to find in my collection pictures that have a particular characteristic. For example pictures taken with the same lenses and similar focal length. or find pictures taken in a particular time frame.

Is there something like this for free (or very low price)? I would like it to run under Linux (via wine if necessary).

share|improve this question
2  
Take a look at photo.stackexchange.com/questions/7268/… and photo.stackexchange.com/questions/5311/…. Neither of those questions really got great answers (although maybe you'll find something helpful there); maybe this whole concept would do better on superuser.com. –  mattdm Dec 26 '11 at 0:03
add comment

3 Answers 3

up vote 1 down vote accepted

If you want free, and cross platform, you could try MaPiVi or XnView. MaPiVi only seems to work with JPG files, so if you shoot RAW it won't work for you. But you can search EXIF data like ISO, camera, shutter speed, and date/time.

Most catalogueing software will allow you to search or filter by EXIF data to some degree. You'd have to trial specific ones to see if they do all that you need.

share|improve this answer
    
xnview seems to have what I need right now. thanks for the recommendation –  santiagozky Dec 29 '11 at 13:53
add comment

Take a look at our Daminion or Lightroom. Both photo managers allow to extract and display Camera lens along with some other technical information (focal length, camera model, date taken, ISO, shutter speed, etc...).

Daminion is free, Lightroom costs $299.

share|improve this answer
    
looks good, but unfortunately it doesnt work under wine (at least not out of the box) –  santiagozky Dec 26 '11 at 12:05
    
We doesn't tested it under Wine yet. Probably it will be possible in the future. –  Murat from Daminion Software Dec 26 '11 at 14:37
    
@santiagozky But you can use it with VirtualBox. :) –  TheIndependentAquarius Dec 27 '11 at 1:05
add comment

I don't know of any packages that do what you want, but there are several utilities to read EXIF data, so you could build your own without too much trouble. Two that I've used are exiv2 and exif; once you figure out their syntax you can put them into your own script in whatever language you prefer (shell, python, perl, ...) (if you need help with that, you really do need to head to one of the other StackExchange sites, as mattdm already commented).

Anyway, to get you started, here's a short script, exif.sh, I wrote (sorry, it's a bit rough) to print out the 35mm-equivalent focal length of a set of photos; the comments at the start of the script show two example ways to use it graph (using gnuplot) the number of pictures taken at each focal length:

#!/bin/bash

# example usage:
# $ ~/Desktop/exif.sh * | awk '{print $1}' | sort -n | uniq -c | gnuplot -e "set term gif; set output \"test.gif\"; plot '-'"
# $ find . -type f -print0 | xargs -0 ~/Desktop/exif.sh | awk '{print $1}' | sort -n | uniq -c | gnuplot -e "set term gif; set output \"test.gif\"; plot '-'"

for arg
  do
    x=$(exif -m -t 0x0110 "$arg" 2>/dev/null)
    y=$(exif -m -t 0x920a "$arg" 2>/dev/null | sed s/"\.".*//)
#REVISIT: previous line drops decimals! Up to 6*.99 or ~6 mm!
#  done

if [ "$x" == "" ]
then
  continue
fi


canon30d="Canon EOS 30D"
canonsx10is="Canon PowerShot SX10 IS"
canonsd870is="Canon PowerShot SD870 IS"
kodakcx7430="KODAK CX7430 ZOOM DIGITAL CAMERA"

if [ "$x" == "$canon30d" ]
then
  multiplier=16
  divisor=10
elif [ "$x" == "$canonsx10is" ]
then
  multiplier=56
  divisor=10
elif [ "$x" == "$canonsd870is" ]
then
  multiplier=6
  divisor=1
elif [ "$x" == "$kodakcx7430" ]
then
  multiplier=6
  divisor=1
else
  multiplier=0
  divisor=1
fi

let "d = $y * $multiplier / $divisor"
echo $d " - " $arg " (" $x ")"

done
share|improve this answer
    
looks interesting, but I need something a bit more robust right now. –  santiagozky Dec 29 '11 at 13:53
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.