Add tag_exif_camera_lens.py utility.
This commit is contained in:
parent
f420367d55
commit
fedd8e00a7
1 changed files with 45 additions and 0 deletions
45
utilities/tag_exif_camera_lens.py
Normal file
45
utilities/tag_exif_camera_lens.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
from voussoirkit import imagetools
|
||||
from voussoirkit import vlogging
|
||||
|
||||
vlogging.basic_config(vlogging.INFO)
|
||||
|
||||
import etiquette
|
||||
|
||||
P = etiquette.photodb.PhotoDB()
|
||||
|
||||
with P.transaction:
|
||||
try:
|
||||
CAMERA = P.get_tag('camera')
|
||||
except etiquette.exceptions.NoSuchTag:
|
||||
CAMERA = P.new_tag('camera')
|
||||
|
||||
try:
|
||||
LENS = P.get_tag('lens')
|
||||
except etiquette.exceptions.NoSuchTag:
|
||||
LENS = P.new_tag('lens')
|
||||
|
||||
for photo in P.search(extension=['jpeg', 'jpg'], yield_albums=False):
|
||||
if not photo.real_path.exists:
|
||||
continue
|
||||
exif = imagetools.exifread(photo.real_path)
|
||||
camera_make = exif.get('Image Make')
|
||||
camera_model = exif.get('Image Model')
|
||||
camera_make = camera_make.values if camera_make else ''
|
||||
camera_model = camera_model.values if camera_model else ''
|
||||
camera = ' '.join([camera_make, camera_model]).strip().replace('.', '')
|
||||
lens = exif.get('EXIF LensModel')
|
||||
lens = (lens.values if lens else '').replace('.', '')
|
||||
if camera:
|
||||
try:
|
||||
camera_tag = P.get_tag(camera)
|
||||
except etiquette.exceptions.NoSuchTag:
|
||||
camera_tag = P.new_tag(camera)
|
||||
CAMERA.add_child(camera_tag)
|
||||
photo.add_tag(camera_tag)
|
||||
if lens:
|
||||
try:
|
||||
lens_tag = P.get_tag(lens)
|
||||
except etiquette.exceptions.NoSuchTag:
|
||||
lens_tag = P.new_tag(lens)
|
||||
LENS.add_child(lens_tag)
|
||||
photo.add_tag(lens_tag)
|
Loading…
Reference in a new issue