Added option to provide a background image

This commit is contained in:
Balthasar Reuter
2018-07-20 16:18:44 +02:00
parent 428e8aa3e6
commit 36c7c3bf52
2 changed files with 14 additions and 7 deletions

View File

@@ -339,8 +339,6 @@ class WelcomeState(State):
context.state = StartupState()
elif event.name == 'exit':
context.state = TeardownState(TeardownEvent.EXIT)
else:
raise ValueError('Unknown GuiEvent "{}"'.format(event.name))
else:
raise TypeError('Unknown Event type "{}"'.format(event))

View File

@@ -55,15 +55,24 @@ class Camera:
def startup(self):
self._cap = self._cam()
self._pic_dims = PictureDimensions(self._cfg,
self._cap.getPicture().size)
self._is_preview = self._is_preview and self._cap.hasPreview
logging.info('Using camera {} preview functionality'.format(
'with' if self._is_preview else 'without'))
self.setIdle()
self._pic_dims = PictureDimensions(self._cfg,
self._cap.getPicture().size)
self._is_preview = self._is_preview and self._cap.hasPreview
background = self._cfg.get('Picture', 'background')
if len(background) > 0:
logging.info('Using background "{}"'.format(background))
bg_picture = Image.open(background)
self._template = bg_picture.resize(self._pic_dims.outputSize)
else:
self._template = Image.new('RGB', self._pic_dims.outputSize,
(255, 255, 255))
self.setIdle()
self._comm.send(Workers.MASTER, StateMachine.CameraEvent('ready'))
def teardown(self, state):
@@ -137,7 +146,7 @@ class Camera:
self.setIdle()
picture = Image.new('RGB', self._pic_dims.outputSize, (255, 255, 255))
picture = self._template.copy()
for i in range(self._pic_dims.totalNumPictures):
resized = self._pictures[i].resize(self._pic_dims.thumbnailSize)
picture.paste(resized, self._pic_dims.thumbnailOffset[i])