Daniel Brötzmann pushed to branch master at gajim / gajim
Commits: c1e41f53 by wurstsalat at 2022-10-09T12:02:17+02:00 cfix: Preview: Try to create GdKPixbuf loader with fixed mime-type
This fixes mime-type detection problems for HEIF images on some systems
- - - - -
2 changed files:
- gajim/common/preview.py - gajim/common/preview_helpers.py
Changes:
===================================== gajim/common/preview.py ===================================== @@ -157,7 +157,7 @@ def orig_exists(self) -> bool: return self.orig_path.exists()
def create_thumbnail(self, data: bytes) -> bool: - self.thumbnail = create_thumbnail(data, self.size) + self.thumbnail = create_thumbnail(data, self.size, self.mime_type) if self.thumbnail is None: self.info_message = _('Creating thumbnail failed') log.warning('Creating thumbnail failed for: %s', self.orig_path)
===================================== gajim/common/preview_helpers.py ===================================== @@ -147,15 +147,31 @@ def extract_and_resize_frames(image: Image.Image, return frames, result
-def create_thumbnail(data: bytes, size: int) -> Optional[bytes]: +def create_thumbnail(data: bytes, + size: int, + mime_type: str + ) -> Optional[bytes]: + thumbnail = create_thumbnail_with_pil(data, size) if thumbnail is not None: return thumbnail - return create_thumbnail_with_pixbuf(data, size) + return create_thumbnail_with_pixbuf(data, size, mime_type)
-def create_thumbnail_with_pixbuf(data: bytes, size: int) -> Optional[bytes]: - loader = GdkPixbuf.PixbufLoader() +def create_thumbnail_with_pixbuf(data: bytes, + size: int, + mime_type: str + ) -> Optional[bytes]: + + try: + # Try to create GdKPixbuf loader with fixed mime-type to + # fix mime-type detection for HEIF images on some systems + loader = GdkPixbuf.PixbufLoader.new_with_mime_type(mime_type) + except GLib.Error as error: + log.warning('Creating pixbuf loader with mime ' + 'type %s failed: %s', mime_type, error) + loader = GdkPixbuf.PixbufLoader() + try: loader.write(data) loader.close()
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/c1e41f53afce030e18c0fc6cdc3dc575f...