Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # Richiede:
- # nautilus-python
- # exiftool
- # gconf-python
- # Versione 0.13
- import nautilus
- import subprocess
- import urllib
- import gconf
- def getexiftool(filename):
- exiftool=subprocess.Popen(['/usr/bin/exiftool', '-fast2', '-f', '-m', '-q', '-q', '-s3', '-ExifIFD:DateTimeOriginal', '-IFD0:Software', '-ExifIFD:Flash', '-Composite:ImageSize', '-IFD0:Model', filename],stdout=subprocess.PIPE,stderr=subprocess.PIPE) #'-Nikon:ShutterCount' non utilizzabile con l'argomento -fast2
- output,errors=exiftool.communicate()
- return output.split('\n')
- class ColumnExtension(nautilus.ColumnProvider, nautilus.InfoProvider):
- def __init__(self):
- pass
- def get_columns(self):
- return (
- nautilus.Column("NautilusPython::ExifIFD:DateTimeOriginal","ExifIFD:DateTimeOriginal","Data (ExifIFD)","Data di scatto"),
- nautilus.Column("NautilusPython::IFD0:Software","IFD0:Software","Software (IFD0)","Software utilizzato"),
- nautilus.Column("NautilusPython::ExifIFD:Flash","ExifIFD:Flash","Flash (ExifIFD)","Modalit\u00e0 del flash"),
- nautilus.Column("NautilusPython::Composite:ImageSize","Composite:ImageSize","Risoluzione (Exif)","Risoluzione dell'immagine"),
- nautilus.Column("NautilusPython::IFD0:Model","IFD0:Model","Fotocamera (IFD0)","Modello fotocamera"),
- #nautilus.Column("NautilusPython::Nikon:ShutterCount","Nikon:ShutterCount","Contatore scatti (Nikon)","Numero di scatti effettuati dalla macchina a questo file"),
- nautilus.Column("NautilusPython::Mp","Mp","Megapixel (Exif)","Dimensione dell'immagine in megapixel"),
- )
- def update_file_info_full(self, provider, handle, closure, file):
- client = gconf.client_get_default()
- if not client.get_bool('/apps/nautilus/nautilus-metadata/enable'):
- client.set_bool('/apps/nautilus/nautilus-metadata/enable',0)
- return
- if file.get_uri_scheme() != 'file':
- return
- filename = urllib.unquote(file.get_uri()[7:])
- if file.is_mime_type('image/jpeg') or file.is_mime_type('image/png') or file.is_mime_type('image/gif') or file.is_mime_type('image/bmp') or file.is_mime_type('image/x-nikon-nef') or file.is_mime_type('image/x-xcf') or file.is_mime_type('image/vnd.adobe.photoshop'):
- data=getexiftool(filename)
- file.add_string_attribute('ExifIFD:DateTimeOriginal',data[0].replace(':','-',2))
- file.add_string_attribute('IFD0:Software',data[1])
- file.add_string_attribute('ExifIFD:Flash',data[2])
- file.add_string_attribute('Composite:ImageSize',data[3])
- file.add_string_attribute('IFD0:Model',data[4])
- #file.add_string_attribute('Nikon:ShutterCount',data[5])
- width, height = data[3].split('x')
- mp = float(width) * float(height) / 1000000
- mp = "%.2f" % mp
- file.add_string_attribute('Mp',str(mp) + ' Mp')
- else:
- file.add_string_attribute('ExifIFD:DateTimeOriginal','')
- file.add_string_attribute('IFD0:Software','')
- file.add_string_attribute('ExifIFD:Flash','')
- file.add_string_attribute('Composite:ImageSize','')
- file.add_string_attribute('IFD0:Model','')
- file.add_string_attribute('Nikon:ShutterCount','')
- file.add_string_attribute('Mp','')
- self.get_columns()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement