Resized preview image to improve performance

This commit is contained in:
Balthasar Reuter
2018-08-22 01:38:48 +02:00
parent 62c233ac04
commit 6d5ba5865b
2 changed files with 19 additions and 0 deletions

View File

@@ -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

View File

@@ -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))