From bae50dc80b55574d8710e011f0c6c28b9e1d4f33 Mon Sep 17 00:00:00 2001 From: Xavier HAUSHERR Date: Thu, 27 Nov 2014 16:04:22 +0100 Subject: [PATCH 1/2] Exif applies only for JPEG format --- opencv_engine/engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opencv_engine/engine.py b/opencv_engine/engine.py index 5fcd65e..f22f09b 100644 --- a/opencv_engine/engine.py +++ b/opencv_engine/engine.py @@ -137,7 +137,7 @@ def read(self, extension=None, quality=None): data = cv.EncodeImage(extension, self.image, options or []).tostring() - if self.context.config.PRESERVE_EXIF_INFO: + if FORMATS[extension] == 'JPEG' and self.context.config.PRESERVE_EXIF_INFO: if hasattr(self, 'exif'): img = JpegFile.fromString(data) img._segments.insert(0, ExifSegment(self.exif_marker, None, self.exif, 'rw')) From b35ffeb1d23e0e25137a5bfd625c7ebc8adc1d3d Mon Sep 17 00:00:00 2001 From: Xavier HAUSHERR Date: Thu, 27 Nov 2014 16:56:14 +0100 Subject: [PATCH 2/2] Catch exception when reading EXIF --- opencv_engine/engine.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/opencv_engine/engine.py b/opencv_engine/engine.py index f22f09b..b98efae 100644 --- a/opencv_engine/engine.py +++ b/opencv_engine/engine.py @@ -65,10 +65,13 @@ def create_image(self, buffer): img0 = cv.DecodeImageM(imagefiledata, cv.CV_LOAD_IMAGE_UNCHANGED) if FORMATS[self.extension] == 'JPEG': - info = JpegFile.fromString(buffer).get_exif() - if info: - self.exif = info.data - self.exif_marker = info.marker + try: + info = JpegFile.fromString(buffer).get_exif() + if info: + self.exif = info.data + self.exif_marker = info.marker + except Exception: + pass return img0