当前位置: 首页>>代码示例>>Python>>正文


Python Box.upload_photo方法代码示例

本文整理汇总了Python中box.Box.upload_photo方法的典型用法代码示例。如果您正苦于以下问题:Python Box.upload_photo方法的具体用法?Python Box.upload_photo怎么用?Python Box.upload_photo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在box.Box的用法示例。


在下文中一共展示了Box.upload_photo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Camera

# 需要导入模块: from box import Box [as 别名]
# 或者: from box.Box import upload_photo [as 别名]
class Camera(object):
    OBJECT_EVENT_ALL = 0x200
    PROP_SAVE_TO = 0xb
    PROP_VAL_SAVE_TO_PC = 2
    DIR_ITEM_CONTEXT_CHANGED = 0x00000208
    PROP_EVENT_ALL = 0x100
    PROP_EVENT_PROP_CHANGED = 0x101
    PROP_EVF_MODE = 0x501

    def __init__(self):
        self._create_sdk()
        self._filename = None
        self._camera = None
        self._box = Box()
        self._photo_queue = Queue()
        self._photo_thread = Thread(target=self._process_queue)
        self._photo_thread.daemon = True
        self._photo_thread.start()
        self._name = None
        self._message = None
        self._photos = []
        self._waiting_for_callback = False
        self._event_object = None
        self._no_shutdown_thread = None
        self._stop_no_shutdown_thread = False

    def _create_sdk(self):
        if sys.platform == 'darwin':
            library_path = ('edsdk', 'EDSDK', 'Frameworks', 'EDSDK.Framework', 'Versions', 'A', 'EDSDK')
        else:
            library_path = ('Windows', 'EDSDK', 'Dll', 'EDSDK.dll')
        self._sdk = dll.LoadLibrary(os.path.join(os.getcwd(), *library_path))

    def _process_queue(self):
        while True:
            try:
                self._box.upload_photo(*self._photo_queue.get())
            except:
                pass

    @contextmanager
    def _initialized_sdk(self):
        initialize_error = self._sdk.EdsInitializeSDK()
        print 'initialize', initialize_error
        if initialize_error:
            raise RuntimeError('Could not inititalize SDK.')
        try:
            yield
        finally:
            print 'terminate', self._sdk.EdsTerminateSDK()

    @contextmanager
    def _camera_session(self):
        camera_list_ref = c_int()
        camera_list_error = self._sdk.EdsGetCameraList(byref(camera_list_ref))
        print 'get list', camera_list_error
        self._camera = c_int()
        camera_error = self._sdk.EdsGetChildAtIndex(camera_list_ref, 0, byref(self._camera))
        print 'get camera', camera_error
        print self._camera
        session_error = self._sdk.EdsOpenSession(self._camera)
        print 'open session', session_error
        self._shutdown_thread = ComThread(target=self._extend_shutdown)
        self._shutdown_thread.daemon = True
        self._shutdown_thread.start()
        ui_lock_error = self._sdk.EdsSendStatusCommand(self._camera, 0, 0)
        print 'lock ui', ui_lock_error
        try:
            yield self._camera
        finally:
            ui_unlock_error = self._sdk.EdsSendStatusCommand(self._camera, 1, 0)
            print 'unlock ui', ui_unlock_error
            close_session_error = self._sdk.EdsCloseSession(self._camera)
            print 'close session', close_session_error
            self._camera = None
            self._no_shutdown_thread = True
            self._shutdown_thread = None

    def _extend_shutdown(self):
        while not self._no_shutdown_thread:
            sleep(60)
            try:
                self._sdk.EdsSendCommand(self._camera, 0x01, 0)
            except:
                pass
        self._no_shutdown_thread = False

    @contextmanager
    def live_view(self):
        #EdsCreateEvfImageRef, EdsDownloadEvfImage, kEdsCameraCommand_DoEvfAf
        size = sizeof(c_int)
        evf_on_error = self._sdk.EdsSetPropertyData(self._camera, 0x00000501, 0, size, pointer(c_int(1)))
        print 'evf on', evf_on_error  # Turn on EVF
        evf_pc_error = self._sdk.EdsSetPropertyData(self._camera, 0x00000500, 0, size, pointer(c_int(2)))
        print 'evf pc', evf_pc_error  # Set EVF device to PC
        af_live_face_error = self._sdk.EdsSetPropertyData(self._camera, 0x0000050E, 0, size, pointer(c_int(2)))
        print 'evf af live face', af_live_face_error  # Set AF Mode to live face
        stream = c_int()
        sys_path = os.path.abspath(os.path.join('evf', 'evf.jpg'))
        sys_path_p = c_char_p()
#.........这里部分代码省略.........
开发者ID:Jeff-Meadows,项目名称:photobooth,代码行数:103,代码来源:camera.py


注:本文中的box.Box.upload_photo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。