Hallo zusammen,
ich habe ein Problem: Ich würde in meiner Kamera-Preview ein Countdown einblenden. Der zählt dann von 7 - 1 runter und das Bild wird geschossen.
Dabei wird ein Bild dauerhaft im Hintergrund des Countdowns eingeblendet.
Hier der entsprechende Code:
Code
camera = PiCamera()
camera.start_preview()
camera.resolution = (2880, 1800)
camera.awb_mode = 'flash'
camera.iso = 0
camera.hflip = True
camera.rotation = 20
#Start Countdown\oob
imgob = Image.open("/home/pi/Photobox/DarkOakCountdown/overlayback.png")
pad = Image.new('RGB', (
((imgob.size[0] + 31) // 32) * 32,
((imgob.size[1] + 15) // 16) * 16,
))
pad.paste(imgob, (0, 0))
oob = camera.add_overlay(pad.tobytes(), size=imgob.size)
oob.alpha = 128
oob.layer = 3
time.sleep(1.25)
#Start Countdown\07
img07 = Image.open("/home/pi/Photobox/DarkOakCountdown/x07.png")
pad = Image.new('RGB', (
((img07.size[0] + 31) // 32) * 32,
((img07.size[1] + 15) // 16) * 16,
))
pad.paste(img07, (0, 0))
o07 = camera.add_overlay(pad.tobytes(), size=img07.size)
o07.alpha = 128
o07.layer = 3
time.sleep(1.25)
camera.remove_overlay(o07)
#Start Countdown\06
img06 = Image.open("/home/pi/Photobox/DarkOakCountdown/x06.png")
pad = Image.new('RGB', (
((img06.size[0] + 31) // 32) * 32,
((img06.size[1] + 15) // 16) * 16,
))
pad.paste(img06, (0, 0))
o06 = camera.add_overlay(pad.tobytes(), size=img06.size)
o06.alpha = 128
o06.layer = 3
time.sleep(1.25)
camera.remove_overlay(o06)
....
Display More
Overlayback.png wird angezeigt. die Datei x07. png wird allerdings nicht überblendet sondern die Vorschau bricht ab mit folgender Fehlermeldung:
Code
mmal: mmal_vc_port_enable: failed to enable port vc.ril.video_render:in:0(RGB3): ENOMEM
mmal: mmal_port_enable: failed to enable port vc.ril.video_render:in:0(RGB3)(0x2243cb0) (ENOMEM)
Traceback (most recent call last):
File "/home/pi/Desktop/Photobooth_new.py", line 326, in <module>
photobox()
File "/home/pi/Desktop/Photobooth_new.py", line 109, in photobox
o07 = camera.add_overlay(pad.tobytes(), size=img07.size)
File "/usr/lib/python3/dist-packages/picamera/camera.py", line 892, in add_overlay
renderer = PiOverlayRenderer(self, source, size, format, **options)
File "/usr/lib/python3/dist-packages/picamera/renderers.py", line 428, in __init__
self.renderer.inputs[0].enable(callback=lambda port, buf: True)
File "/usr/lib/python3/dist-packages/picamera/mmalobj.py", line 1249, in enable
prefix="Unable to enable port %s" % self.name)
File "/usr/lib/python3/dist-packages/picamera/exc.py", line 184, in mmal_check
raise PiCameraMMALError(status, prefix)
picamera.exc.PiCameraMMALError: Unable to enable port vc.ril.video_render:in:0: Out of memory
Display More
Hat mir jemand eine Lösung wie ich das Problem lösen kann?
Ich habe ein Raspberry pi 4 mit 4 gb ram. Daran solls nicht liegen
Grüße Chris