Örvitinn

Brennivíddarforritið

Hér er python scriptið sem ég nota til að greina notkunartíðni brennivíddar á myndunum mínum. Þetta er óskaplega einfalt og ómerkilegt en virkar. Ég nota PIL til að lesa exif upplýsingar. Renni í gegnum allar myndir í foldernum sem scriptið er keyrt í og alla undirfoldera. Les skrár sem enda á .jpg en ekki _t.jpg (thumbnail á myndasíðunni minni). Nota fasta (FocalLength) til að fletta upp brennivídd. Það er nóg að skipta honum út fyrir viðeigandi fasta til að skoða iso eða ljósop. Held utan um gögn í dictionary og dumpa svo út í lokin.

# -*- coding: iso-8859-1 -*-
import Image
import os.path

FocalLength = 37386

def lesa_focallengd(mynd):
    try:
        exifinfo = mynd._getexif()
        a,b = exifinfo[FocalLength]
        focalLength = int(a/b)
        return focalLength
    except:
        return None

def foo(m, dirname, file_names):
    print dirname
    for skra in file_names:
        if skra.lower().endswith(".jpg") and not skra.lower().endswith("_t.jpg"):
            nafn = os.path.join(dirname, skra)
            mynd = Image.open(nafn)
            mm = lesa_focallengd(mynd)
            print skra, mm  
            if mm:
                try:
                    m[mm] += 1
                except:
                    m[mm] = 1

if __name__ == "__main__":
    m = {}
    os.path.walk(os.getcwd(), foo, m)
    for key, value in m.iteritems():
        print key, value

python