From cc9e8249c77fcdbbb80ec9a18e6eb2e4d1fb4527 Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Wed, 15 May 2024 20:18:51 +0200 Subject: Extract preview images from CR2 files and use those for full view CR2 files are still offered for download --- bin/pyggle | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/bin/pyggle b/bin/pyggle index 0ee5c05..6c6cc87 100755 --- a/bin/pyggle +++ b/bin/pyggle @@ -166,7 +166,9 @@ class ImageHTML: else: self.subject_distance = f"""""" - def to_thumbnail_html(self, index, filename, thumbname, with_detail_page=False): + def to_thumbnail_html( + self, index, filename, thumbname, with_detail_page=False, jpegfile=None + ): if with_detail_page: self.focus = f"""{self.focus}""" @@ -180,7 +182,7 @@ class ImageHTML: exif_html = """ """.join(filter(bool, exif_lines)) buf = """
\n""" - buf += f"""""" + buf += f"""""" buf += f"""{linktext}""" buf += "" buf += "
" @@ -256,6 +258,7 @@ class Thumbnail: file_key_template=None, ): self.filename = filename + self.jpegname = None self.size = size self.exif_dt = None self.gps = None @@ -291,6 +294,24 @@ class Thumbnail: im = im.convert("RGB") im.save(self.thumbname, "JPEG") + if filename.lower().endswith(".cr2"): + try: + jpegname = f".thumbnails/{thumb_filename}.p.jpg" + subprocess.run( + [ + "exiftool", + "-quiet", + "-binary", + "-tagOut!", + jpegname, + "-PreviewImage", + filename, + ] + ) + self.jpegname = jpegname + except FileNotFoundError: + pass + if args.with_detail_page and 0: self.average_color = im.resize((1, 1)).getpixel((0, 0)) self.luminance = im.convert("L").getpixel((0, 0)) @@ -531,7 +552,11 @@ class Thumbnail: def to_html(self, index, with_detail_page=False): return self.html.to_thumbnail_html( - index, self.filename, self.thumbname, with_detail_page + index, + self.filename, + self.thumbname, + with_detail_page, + jpegfile=self.jpegname, ) def to_detail_html(self, html_prefix, html_postfix): -- cgit v1.2.3