python用个kivy库实现点击拍照并展示。实现一个截面中有摄像头,拍照之后展示图片
该回答引用ChatGPT4与博主@晓码自在合作编写:
使用kivy实现点击拍照并展示的代码:
python
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.image import Image
from kivy.clock import Clock
from kivy.graphics.texture import Texture
from kivy.core.camera import Camera
class CameraApp(App):
def build(self):
self.img = Image()
self.camera = Camera(resolution=(640, 480), play=False)
self.camera.bind(on_load=self.camera_loaded)
self.camera.bind(on_texture=self.texture_updated)
btn = Button(text='Take Photo', on_press=self.take_photo)
layout = BoxLayout(orientation='vertical')
layout.add_widget(self.img)
layout.add_widget(btn)
return layout
def camera_loaded(self, *args):
Clock.schedule_interval(self.update_texture, 1/30)
self.camera.play = True
def update_texture(self, *args):
if self.camera.status == 'playing':
self.camera.texture = self.camera.texture
def texture_updated(self, *args):
if self.camera.status == 'playing':
self.img.texture = self.camera.texture
def take_photo(self, *args):
self.camera.play = False
self.camera.texture = Texture.create(size=self.camera.resolution)
self.img.texture = self.camera.texture
if __name__ == '__main__':
CameraApp().run()
这个程序使用kivy的Camera实现摄像头捕获,并在Image控件中展示摄像头画面。当点击“Take Photo”按钮时,它会捕获当前画面,并固定展示为图片。