python - manipulation - Convertir imagen de pygame a imagen PIL
python image processing (1)
Según el comentario de Damian Yerrick, en Python 3 el resultado de pygame.image.tostring()
es un bytes
, a pesar del nombre del método. Por lo tanto, podemos salir de esta situación con este código simple:
pygame.camera.init()
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0],(1280,720))
cam.start()
time.sleep(1)
webcamImage = cam.get_image()
pil_string_image = pygame.image.tostring(img,"RGBA",False)
im = Image.frombytes("RGBA",(1280,720),pil_string_image)
estamos utilizando un Raspberry Pi + Python 3.4 + PyGame para capturar una imagen desde una cámara web USB específica. Usamos este código simple para capturar (funciona bien):
pygame.camera.init()
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0],(1280,720))
cam.start()
time.sleep(1)
webcamImage = cam.get_image()
El problema viene aquí: tenemos que convertir esta webcamImage en una imagen PIL. Seguimos este enlace, pero desafortunadamente la función Image.fromstring () ya no existe. Entonces, no podemos hacer eso :
pil_string_image = pygame.image.tostring(webcamImage, "RGBA",False)
pil_image = Image.fromstring("RGBA",(1280,720),pil_string_image)
PIL dice que Image.fromstring () está en desuso, y sugiere usar la función Image.frombytes () . Claramente, no encontramos la función pygame.image equivalente que convierta la webcamImage en una matriz de bytes. Así que estamos trabajados aquí: ¿pueden ayudarnos, por favor? Gracias :-)