diff --git a/photobooth/camera/PictureDimensions.py b/photobooth/camera/PictureDimensions.py index cce5bde..4b6c6ce 100644 --- a/photobooth/camera/PictureDimensions.py +++ b/photobooth/camera/PictureDimensions.py @@ -37,6 +37,8 @@ class PictureDimensions: self.computeThumbnailDimensions() + self.computePreviewDimensions(config) + def computeThumbnailDimensions(self): resize_factor = min((((self.outputSize[i] - (self.numPictures[i] + 1) * @@ -58,6 +60,17 @@ class PictureDimensions: pos[j] * self.thumbnailSize[j] for j in range(2))) + def computePreviewDimensions(self, config): + + gui_size = (config.getInt('Gui', 'width'), + config.getInt('Gui', 'height')) + + resize_factor = min(min((gui_size[i] / self.captureSize[i] + for i in range(2))), 1) + + self._preview_size = tuple(int(self.captureSize[i] * resize_factor) + for i in range(2)) + @property def numPictures(self): @@ -98,3 +111,8 @@ class PictureDimensions: def thumbnailOffset(self): return self._thumb_offsets + + @property + def previewSize(self): + + return self._preview_size diff --git a/photobooth/camera/__init__.py b/photobooth/camera/__init__.py index db7c217..1f2c9de 100644 --- a/photobooth/camera/__init__.py +++ b/photobooth/camera/__init__.py @@ -121,6 +121,7 @@ class Camera: if self._is_preview: while self._comm.empty(Workers.CAMERA): picture = ImageOps.mirror(self._cap.getPreview()) + picture = picture.resize(self._pic_dims.previewSize) self._comm.send(Workers.GUI, StateMachine.CameraEvent('preview', picture))