Loading openflexure_microscope/captures/__init__.py +1 −1 Original line number Diff line number Diff line from . import capture, capture_manager from .capture import CaptureObject from .capture import CaptureObject, THUMBNAIL_SIZE from .capture_manager import CaptureManager openflexure_microscope/captures/capture.py +12 −2 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import logging import os import uuid from collections import OrderedDict from PIL import Image import dateutil.parser Loading @@ -14,6 +15,7 @@ from openflexure_microscope.camera.piexif._exceptions import InvalidImageDataErr from openflexure_microscope.config import JSONEncoder EXIF_FORMATS = ["JPG", "JPEG", "TIF", "TIFF"] THUMBNAIL_SIZE = (200, 150) def pull_usercomment_dict(filepath): Loading Loading @@ -347,8 +349,16 @@ class CaptureObject(object): thumbnail = exif_dict.pop("thumbnail") if thumbnail: return io.BytesIO(thumbnail) # If no thumbnail exists, serve the full image return self.data # If no thumbnail exists, make and save one thumb_bytes = io.BytesIO() thumb_im = Image.open(self.data) thumb_im.thumbnail(THUMBNAIL_SIZE) thumb_im.save(thumb_bytes, "jpeg") thumbnail = thumb_bytes.getvalue() exif_dict["thumbnail"] = thumbnail exif_bytes = piexif.dump(exif_dict) piexif.insert(exif_bytes, self.file) return io.BytesIO(thumbnail) def save(self) -> None: """Write stream to file, and save/update metadata file""" Loading openflexure_microscope/microscope.py +2 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ import pkg_resources from expiringdict import ExpiringDict from openflexure_microscope.camera.mock import MissingCamera from openflexure_microscope.captures import CaptureManager from openflexure_microscope.captures import CaptureManager, THUMBNAIL_SIZE from openflexure_microscope.stage.mock import MissingStage from openflexure_microscope.stage.sanga import SangaDeltaStage, SangaStage Loading Loading @@ -387,7 +387,7 @@ class Microscope: # Capture to output object extras = {} if fmt == "jpeg": extras["thumbnail"] = (200, 150, 85) extras["thumbnail"] = (*THUMBNAIL_SIZE, 85) logging.info("Starting microscope capture %s", output.file) self.camera.capture( output, Loading Loading
openflexure_microscope/captures/__init__.py +1 −1 Original line number Diff line number Diff line from . import capture, capture_manager from .capture import CaptureObject from .capture import CaptureObject, THUMBNAIL_SIZE from .capture_manager import CaptureManager
openflexure_microscope/captures/capture.py +12 −2 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import logging import os import uuid from collections import OrderedDict from PIL import Image import dateutil.parser Loading @@ -14,6 +15,7 @@ from openflexure_microscope.camera.piexif._exceptions import InvalidImageDataErr from openflexure_microscope.config import JSONEncoder EXIF_FORMATS = ["JPG", "JPEG", "TIF", "TIFF"] THUMBNAIL_SIZE = (200, 150) def pull_usercomment_dict(filepath): Loading Loading @@ -347,8 +349,16 @@ class CaptureObject(object): thumbnail = exif_dict.pop("thumbnail") if thumbnail: return io.BytesIO(thumbnail) # If no thumbnail exists, serve the full image return self.data # If no thumbnail exists, make and save one thumb_bytes = io.BytesIO() thumb_im = Image.open(self.data) thumb_im.thumbnail(THUMBNAIL_SIZE) thumb_im.save(thumb_bytes, "jpeg") thumbnail = thumb_bytes.getvalue() exif_dict["thumbnail"] = thumbnail exif_bytes = piexif.dump(exif_dict) piexif.insert(exif_bytes, self.file) return io.BytesIO(thumbnail) def save(self) -> None: """Write stream to file, and save/update metadata file""" Loading
openflexure_microscope/microscope.py +2 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ import pkg_resources from expiringdict import ExpiringDict from openflexure_microscope.camera.mock import MissingCamera from openflexure_microscope.captures import CaptureManager from openflexure_microscope.captures import CaptureManager, THUMBNAIL_SIZE from openflexure_microscope.stage.mock import MissingStage from openflexure_microscope.stage.sanga import SangaDeltaStage, SangaStage Loading Loading @@ -387,7 +387,7 @@ class Microscope: # Capture to output object extras = {} if fmt == "jpeg": extras["thumbnail"] = (200, 150, 85) extras["thumbnail"] = (*THUMBNAIL_SIZE, 85) logging.info("Starting microscope capture %s", output.file) self.camera.capture( output, Loading