Je me rends compte avec horreur que ça fait presque trois mois que j'ai pas bloggé ici. C'est affreux. Rattrapons cela immédiatement.

Faut dire, j'ai été occupée ailleurs :

... débordée, quoi.

Bref. Au fait, bonne année, tout ça, on est encore en janvier, l'honneur est sauf.

Si je me décide à reprendre le clavier aujourd'hui, c'est pour partager un tout ptit bout de code très laid. Contexte : j'envisage fortement l'achat d'un truc un poil plus lumineux que mes objectifs courants pour le Pentax. Et comme je veux pas y passer les deux bras (un seul suffira), ça implique presque mécaniquement la focale fixe. Et comme je suis indécise, j'hésite entre deux focales : la 35 et la 50. Par conséquent, j'ai codouillé un ptit truc dans un coin pour savoir si j'avais plutôt tendance à tourner autour du 35 ou plutôt autour du 50. Me suis limitée à la cuisine, parce que c'est quand même là que je prends une majorité de photos, et si je prends un objectif qui me va pas à la cuisine, ça va me déprimer je le sens.

Attention, c'est (comme d'habitude) probablement très laid et strictement non flexible. Mais ça fait à peu près ce que je veux, donc si ça peut servir à quelqu'un... (je dois quand même pas être la seule à me poser ce genre de questions ? si ? bon.). C'est du Python, obviously, parce que le Python, c'est bien.

from PIL import Image
from PIL.ExifTags import TAGS
import os

def get_exif(fn):
    ret = {}
    i = Image.open(fn)
    info = i._getexif()
    for tag, value in info.items():
        decoded = TAGS.get(tag, tag)
        ret[decoded] = value
    return ret

path = "/home/isa/Photos/cuisine"
range35 = 0
range50 = 0
for root, dir, fnames in os.walk(path):
  for fname in fnames:
    fname = root + "/" + fname
    if os.path.basename(fname).lower().endswith("jpg"):
      try:
        exif = get_exif(fname)
        model = exif["Model"]
        if(model.startswith("PENTAX K-m")):
          (num1, num2) = get_exif(fname)["FocalLength"]
          focal = num1/num2
          if(focal >= 31 and focal <= 39):
            range35 = range35 +1
          elif(focal >= 46 and focal <= 54):
            range50 = range50 + 1
      except:
        pass

print "Range autour de 35 :"
print range35

print "Range autour de 50 :"
print range50

Et, pour ceux que ça intéresse, le résultat est sans appel :

Range autour de 35 :
951
Range autour de 50 :
437

Sur le 35 j'ai « le choix » entre la 1.4 de Sigma et la 2.8 macro de Pentax... ça sera probablement le macro, la mise au point à 40cm+ sur le Sigma me fait un peu peur. Ça m'emmerde un peu, au sens où je gagne pas tant que ça en luminosité. Bref... la photo est un domaine de frustration permanent :p (à moins d'être très riche et d'avoir un dromadaire pour porter le matériel).

PS : je vient de passer, avec un peu de retard, sur le Gculicious, ressource précieuse s'il en est, et d'y trouver un toolaize de stats EXIF pour compte Flickr. Pour le coup, j'ai à peu près le même nombre de photos dans les deux catégories... dameunède :p