From ebb2237d45d5c771ec67425f9129e9d4f39ba9ef Mon Sep 17 00:00:00 2001 From: "Antonio J. Delgado" Date: Mon, 6 Sep 2021 17:10:01 +0300 Subject: [PATCH] Write exif data if missing --- image_classifier/image_classifier.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/image_classifier/image_classifier.py b/image_classifier/image_classifier.py index c802f7b..c03cb87 100755 --- a/image_classifier/image_classifier.py +++ b/image_classifier/image_classifier.py @@ -72,27 +72,29 @@ class image_classifier: with open(file, 'rb') as image_file: self.exif_info = exif.Image(image_file) if self.exif_info.has_exif: - for key in self.exif_info.list_all(): + for key in dir(self.exif_info): if key != 'cannot read a base/unknown IFD tag instance': sys.stdout.write(f"{key}: ") sys.stdout.write(self.exif_info[key]) - self.append_people_to_exif(people) - with open(file, 'wb') as new_image_file: - new_image_file.write(self.exif_info.get_file()) else: self._log.debug("No exif info in the image.") + self.append_people_to_exif(people) + with open(file, 'wb') as new_image_file: + new_image_file.write(self.exif_info.get_file()) # get date # move to destination else: self._log.debug("Doesn't seem to be an image.") def append_people_to_exif(self, people): - if self.is_json(self.exif_info['user_comment']): + if self.is_json(self.exif_info.get('user_comment')): data = json.loads(self.exif_info['user_comment']) if 'PeopleDetected' not in data: data['PeopleDetected'] = list() else: - data = {"previous_user_comment": self.exif_info['user_comment']} + data = dict() + if self.exif_info.get('user_comment'): + data["previous_user_comment"]=self.exif_info.get('user_comment') data['PeopleDetected'] = list() for person in people: data['PeopleDetected'].append(person)