How can I make a full screen camera with buttons on top of the image.
resolution: (self.width, self.height)
It doesn’t help, the camera still comes out with frames. Didn’t find anything about this in the official documentation.
from kivy.app import App from kivy.lang import Builder from kivy.uix.boxlayout import BoxLayout import time Builder.load_string(''' <CameraClick>: orientation: 'vertical' Camera: id: camera resolution: (640, 480) play: False ToggleButton: text: 'Play' on_press: camera.play = not camera.play size_hint_y: None height: '48dp' Button: text: 'Capture' size_hint_y: None height: '48dp' on_press: root.capture() ''') class CameraClick(BoxLayout): def capture(self): ''' Function to capture the images and give them the names according to their captured time and date. ''' camera = self.ids['camera'] timestr = time.strftime("%Y%m%d_%H%M%S") camera.export_to_png("IMG_{}.png".format(timestr)) print("Captured") class TestCamera(App): def build(self): return CameraClick() TestCamera().run()
Advertisement
Answer
Some minor changes to your code (component reorder, added Window.maximize()
do what I think you’re looking for (edit: modified to make the camera as large as possible while still
maintaining aspect ratio)
from kivy.app import App from kivy.lang import Builder from kivy.uix.boxlayout import BoxLayout from kivy.core.window import Window import time Window.maximize() Builder.load_string( ''' <CameraClick>: orientation: 'vertical' ToggleButton: text: 'Play' on_press: camera.play = not camera.play size_hint_y: None height: '48dp' Button: text: 'Capture' size_hint_y: None height: '48dp' on_press: root.capture() Camera: id: camera resolution: (640, 480) allow_stretch: True keep_ratio: True play: False ''' ) class CameraClick(BoxLayout): def capture(self): ''' Function to capture the images and give them the names according to their captured time and date. ''' camera = self.ids['camera'] timestr = time.strftime("%Y%m%d_%H%M%S") camera.export_to_png("IMG_{}.png".format(timestr)) print("Captured") class TestCamera(App): def build(self): return CameraClick() TestCamera().run()