Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将图像从pygame转换为PIL图像_Python_Python 3.x_Raspberry Pi_Python Imaging Library_Webcam Capture - Fatal编程技术网

Python 将图像从pygame转换为PIL图像

Python 将图像从pygame转换为PIL图像,python,python-3.x,raspberry-pi,python-imaging-library,webcam-capture,Python,Python 3.x,Raspberry Pi,Python Imaging Library,Webcam Capture,我们正在使用树莓Pi+Python3.4+PyGame从特定的USB网络摄像头捕获图像。我们使用这个简单的代码来捕获(它工作正常): 问题来了:我们必须将这个webcamImage转换成PIL图像。我们遵循链接,但不幸的是函数Image.fromstring()不再存在。所以,我们不能这样做: pil_string_image = pygame.image.tostring(webcamImage, "RGBA",False) pil_image = Image.fromstring("RGBA

我们正在使用树莓Pi+Python3.4+PyGame从特定的USB网络摄像头捕获图像。我们使用这个简单的代码来捕获(它工作正常):

问题来了:我们必须将这个webcamImage转换成PIL图像。我们遵循链接,但不幸的是函数Image.fromstring()不再存在。所以,我们不能这样做:

pil_string_image = pygame.image.tostring(webcamImage, "RGBA",False)
pil_image = Image.fromstring("RGBA",(1280,720),pil_string_image)
PIL表示Image.fromstring()已被弃用,并建议使用函数Image.frombytes()。显然,我们没有找到将webcamImage转换为字节数组的等效pygame.image函数。所以我们在这里被绊住了:你能帮我们吗?
谢谢:-)

根据Damian Yerrick的评论,在Python3下,
pygame.image.tostring()
的结果是一个
字节
,不管方法的名称如何。因此,我们可以通过以下简单代码摆脱这种情况:

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(webcamImage,"RGBA",False)
im = Image.frombytes("RGBA",(1280,720),pil_string_image)

pygame.image.tostring()的实际结果类型是什么?换句话说,
type(pil\u string\u image).\uu name\uuu
产生什么?如果
字节
,则Pygame文档已过时。如果
str
,那么我需要更多的帮助来识别Pygame正在应用的编码。Hy@DamianYerrick,首先:感谢您的温和回复。我们遵循您的建议,所以我们这样做:打印(键入(pil_string_image)。\uuuu name_uu)结果是字节。那么,你建议做什么呢?好的,我们在下面回答自己(:-D)什么是
img
?也许应该是
pil\u string\u image=pygame.image.tostring(webcamImage,“RGBA”,False)
?我们的img就是您所说的webcamImage。谢谢你的回答,但我们在一年前解决了我们的问题。这是一个很好的问题和答案。我两个都投了赞成票。顺便问一下,您知道如何显示这些PIL图像(在树莓中)?您好,我们需要获取图像并将其保存到文件中。您可以尝试以下代码行(警告:我们不尝试该代码):from PIL import Image | img=Image.open('test.png')| img.show()
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(webcamImage,"RGBA",False)
im = Image.frombytes("RGBA",(1280,720),pil_string_image)