当我输入此代码时:
import pygame.camera
pygame.camera.init()
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0])
cam.start()
img = cam.get_image()
import pygame.image
pygame.image.save(img, "photo.bmp")
pygame.camera.quit()
我收到错误:但我可以看到我的网络摄像头灯亮了......
Traceback (most recent call last):
File "C:\Users\ibrahim\Desktop\Bill2.py", line 7, in <module>
pygame.image.save(img, "photo.bmp")
TypeError: must be pygame.Surface, not None
答案 0 :(得分:3)
我认为你的平台是win32,所以pygame导入的Camera
类位于Python27\Lib\site-packages\pygame\_camera_vidcapture.py
。看起来方法Camera.get_image()
没有返回表面,这可能是因为此方法在内部使用的pygame.image
模块尚未初始化。
我建议您首先初始化模块,然后获取图像以最终保存它。我还建议您删除相机对象并退出模块。
import pygame.camera
import pygame.image
pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0])
cam.start()
img = cam.get_image()
pygame.image.save(img, "photo.bmp")
del cam
pygame.camera.quit()
pygame.quit()
PS:在我的机器上,我必须在self.dev.setresolution(width, height)
中对语句Camera.__init__
发表评论,因为它对我的网络摄像头有效。