2014-01-25 3 views
0

Когда я печатаю этот код:ошибка во время захвата видео/изображения в VidCap python27

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 

ответ

3

Я полагаю, что ваша платформа - win32, поэтому класс Camera, который импортирует pygame, находится в 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__, так как он работает на моей веб-камеры.

+0

Traceback (самый последний вызов последнего): Файл "C: \ Users \ Ibrahim \ Desktop \ питона \ transpose.py", строка 9, в pygame.image.save (IMG, "photo.bmp") TypeError: должен быть pygame.Surface, а не None .. он дает эту ошибку –

Смежные вопросы