pygame / lib / _camera_vidcapture.py

illume be0be6c 



illume 7b862f4 


illume be0be6c 










illume e18d4b4 











illume be0be6c 

illume 7b862f4 



illume be0be6c 










illume 7b862f4 

illume be0be6c 


























illume 7b862f4 





illume be0be6c 
illume 7b862f4 







illume be0be6c 















illume 7b862f4 




illume be0be6c 













illume 7b862f4 
illume be0be6c 
illume 7b862f4 


illume be0be6c 
import pygame

def list_cameras():
    return [0]

    # this just cycles through all the cameras trying to open them
    cameras = []
    for x in range(256):
        try:
            c = Camera(x)
        except:
            break
        cameras.append(x)

    return cameras


def init():
    global vidcap
    import vidcap as vc
    vidcap = vc

def quit():
    global vidcap
    pass
    del vidcap



class Camera:

    def __init__(self, device =0,
                       size = (640,480),
                       mode = "RGB",
                       show_video_window=0):
        """device:  VideoCapture enumerates the available video capture devices
                    on your system.  If you have more than one device, specify
                    the desired one here.  The device number starts from 0.

           show_video_window: 0 ... do not display a video window (the default)
                              1 ... display a video window

                            Mainly used for debugging, since the video window
                            can not be closed or moved around.
        """
        self.dev = vidcap.new_Dev(device, show_video_window)
        width, height = size
        self.dev.setresolution(width, height)

    def display_capture_filter_properties(self):
        """Displays a dialog containing the property page of the capture filter.

        For VfW drivers you may find the option to select the resolution most
        likely here.
        """
        self.dev.displaycapturefilterproperties()

    def display_capture_pin_properties(self):
        """Displays a dialog containing the property page of the capture pin.

        For WDM drivers you may find the option to select the resolution most
        likely here.
        """
        self.dev.displaycapturepinproperties()

    def set_resolution(self, width, height):
        """Sets the capture resolution. (without dialog)
        """
        self.dev.setresolution(width, height)

    def get_buffer(self):
        """Returns a string containing the raw pixel data.
        """
        return self.dev.getbuffer()

    def start(self):
        """
        """
    def set_controls(self, **kwargs):
        """
        """

    def stop(self):
        """
        """

    def get_image(self, dest_surf = None):
        return self.get_surface(dest_surf)

    def get_surface(self, dest_surf = None):
        """Returns a pygame Surface.
        """
        abuffer, width, height = self.get_buffer()
        if abuffer:
            if 1:
                surf = pygame.image.frombuffer(abuffer, (width, height), "RGB")

                # swap it from a BGR surface to an RGB surface.
                r,g,b,a = surf.get_masks()
                surf.set_masks((b,g,r,a))

                r,g,b,a = surf.get_shifts()
                surf.set_shifts((b,g,r,a))

                surf = pygame.transform.flip(surf, 0,1)

                # if there is a destination surface given, we blit onto that.
                if dest_surf:
                    dest_surf.blit(surf, (0,0))
                return dest_surf

            else:

                # Need to flip the image.
                surf = pygame.image.fromstring(abuffer, (width, height), "RGB", 1)
                # swap it from a BGR surface to an RGB surface.
                r,g,b,a = surf.get_masks()
                surf.set_masks((b,g,r,a))

                r,g,b,a = surf.get_shifts()
                surf.set_shifts((b,g,r,a))
            return surf


if __name__ == "__main__":
    import pygame.examples.camera

    pygame.camera.Camera = Camera
    pygame.camera.list_cameras = list_cameras
    pygame.examples.camera.main()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.