Skip to content

Instantly share code, notes, and snippets.

@chriswoodle
Created December 2, 2018 16:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chriswoodle/68e95ad8d82a3d17c79d166c8600824f to your computer and use it in GitHub Desktop.
Save chriswoodle/68e95ad8d82a3d17c79d166c8600824f to your computer and use it in GitHub Desktop.
Runs pi cam and displays as video
# From https://stackoverflow.com/questions/27805077/display-io-stream-from-raspberry-pi-camera-as-video-in-pygame
import picamera
import pygame
import io
# Init pygame
pygame.init()
screen = pygame.display.set_mode((320,240))
# Init camera
camera = picamera.PiCamera()
camera.resolution = (640, 480)
camera.crop = (0.0, 0.0, 1.0, 1.0)
x = (screen.get_width() - camera.resolution[0]) / 2
y = (screen.get_height() - camera.resolution[1]) / 2
# Init buffer
rgb = bytearray(camera.resolution[0] * camera.resolution[1] * 3)
# Main loop
exitFlag = True
while(exitFlag):
for event in pygame.event.get():
if(event.type is pygame.MOUSEBUTTONDOWN or
event.type is pygame.QUIT):
exitFlag = False
stream = io.BytesIO()
camera.capture(stream, use_video_port=True, format='rgb')
stream.seek(0)
stream.readinto(rgb)
stream.close()
img = pygame.image.frombuffer(rgb[0:
(camera.resolution[0] * camera.resolution[1] * 3)],
camera.resolution, 'RGB')
screen.fill(0)
if img:
screen.blit(img, (x,y))
pygame.display.update()
camera.close()
pygame.display.quit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment