move pyexiv2 check in read_settings and move copy_exif out of the Gallery class

This commit is contained in:
Simon
2012-08-07 00:31:34 +02:00
parent 88175f02c7
commit a22f665f89
2 changed files with 36 additions and 30 deletions

View File

@@ -28,6 +28,11 @@ from PIL import Image as PILImage
from PIL import ImageDraw, ImageOps
from shutil import copy2
try:
import pyexiv2
except ImportError:
pass
DESCRIPTION_FILE = "album_description"
@@ -157,37 +162,31 @@ class Gallery:
quality=self.settings['jpg_quality'])
if self.settings['exif']:
self.copy_exif(f, im_name)
copy_exif(f, im_name)
def copy_exif(self, srcfile, dstfile):
"copy exif metadatas from src to dest images"
def copy_exif(srcfile, dstfile):
"copy the exif metadatas from src to dest images"
if pyexiv2.version_info[1] == 1:
src = pyexiv2.Image(srcfile)
dst = pyexiv2.Image(dstfile)
src.readMetadata()
dst.readMetadata()
try:
import pyexiv2
except ImportError:
self.settings['exif'] = 0
print "Error: install pyexiv2 module to use exif metadatas."
src.copyMetadataTo(dst)
except:
print "Error: metadata not copied for %s." % srcfile
return
if pyexiv2.version_info[1] == 1:
src = pyexiv2.Image(srcfile)
dst = pyexiv2.Image(dstfile)
src.readMetadata()
dst.readMetadata()
try:
src.copyMetadataTo(dst)
except:
print "Error: metadata not copied for %s." % srcfile
return
dst.writeMetadata()
else:
src = pyexiv2.ImageMetadata(srcfile)
dst = pyexiv2.ImageMetadata(dstfile)
src.read()
dst.read()
try:
src.copy(dst)
except:
print "Error: metadata not copied for %s." % srcfile
return
dst.write()
dst.writeMetadata()
else:
src = pyexiv2.ImageMetadata(srcfile)
dst = pyexiv2.ImageMetadata(dstfile)
src.read()
dst.read()
try:
src.copy(dst)
except:
print "Error: metadata not copied for %s." % srcfile
return
dst.write()

View File

@@ -60,4 +60,11 @@ def read_settings(filename=None):
settings['img_size'] = get_size(settings['img_size'])
settings['thumb_size'] = get_size(settings['thumb_size'])
if settings['exif']:
try:
import pyexiv2
except ImportError:
settings['exif'] = 0
print "Error: install pyexiv2 module to use exif metadatas."
return settings