2014-02-26 61 views
0

我的Python代碼存在問題。首先,當我使用功能pygame.get_image時,我的攝像頭的屏幕截圖是NoneType,但我需要它是表面或至少一張圖像,以便我可以將其轉換。這是我的代碼:將NoneType轉換爲表面

import pygame 
    import pygame.camera 
    from pygame.locals import * 
    pygame.init() 
    pygame.camera.init() 
    cam=pygame.camera.Camera(0,(640,480),"RGB") 
    cam.start() 

    while 1: 
     screen=pygame.display.set_mode((640,480)) 
     im=cam.get_image() 
     screen.blit(im,(0,0)) 
     pygame.display.update 

和錯誤信息是:

Traceback (most recent call last): 
     File "<stdin>", line 4, in <module> 
    TypeError: argument 1 must be pygame.Surface, not None 
+4

沒有任何魔法會將'None'轉換爲'Surface'。你需要弄清楚爲什麼'get_image()'返回'None'。 –

+0

我知道,但我的問題其實我不明白爲什麼我沒有形象。我做了幾乎相同的代碼,但沒有相機設置,所有的工作。 (對不起,我幾周前開始使用python) – user3354980

+1

你不需要''while'循環中的'pygame.display.set_mode'位。在該部分之前移動它。 – elParaguayo

回答

2

pygame.camera.Camera(0,(640,480),"RGB")0看起來並不像一個設備,嘗試調用pygame.camera.list_cameras()獲得設備的列表。

請記住,該模塊僅適用於Linux和V4L2相機。

+0

我在窗戶上,所以這可能是爲什麼它不工作,有什麼我可以在Windows上使用? – user3354980