ó
;c›]c           @` sä   d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l m	 Z	 d d l
 m Z d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ e d d g  d ƒ Z e	 j e ƒ e d d g  d ƒ Z e	 j e ƒ d S(   sD   
PIL-based formats to take screenshots and grab from the clipboard.
i    (   t   absolute_importt   print_functiont   divisionNi   (   t   formats(   t   Formatt   BaseGrabFormatc           B` sN   e  Z d  Z e Z d Z d „  Z d „  Z d „  Z	 d e
 j f d „  ƒ  YZ RS(   s#    Base format for grab formats.
    c         O` s,   t  t |  ƒ j | | Ž  t j ƒ  |  _ d  S(   N(   t   superR   t   __init__t	   threadingt   RLockt   _lock(   t   selft   argst   kwargs(    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyR      s    c         C` s   t  S(   N(   t   False(   R   t   request(    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyt
   _can_write   s    c      	   C` sˆ   |  j  v |  j s{ t |  _ d d  l } t | d ƒ sF t d ƒ ‚ n  y d d l m } Wn t k
 rn d  SX| |  _ n  Wd  QX|  j S(   Ni    t   __version__s(   Imageio Pillow requires Pillow, not PIL!(   t	   ImageGrab(	   R
   t   _pillow_importedt   Truet   PILt   hasattrt   ImportErrorR   t   Nonet
   _ImageGrab(   R   R   R   (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyt   _init_pillow   s    
		t   Readerc           B` s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C` s   d  S(   N(    (   R   (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyt   _open-   s    c         C` s   d  S(   N(    (   R   (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyt   _close0   s    c         C` s   |  j  j | ƒ S(   N(   t   formatt	   _get_data(   R   t   index(    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyR   3   s    (   t   __name__t
   __module__R   R   R   (    (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyR   ,   s   		N(   R!   R"   t   __doc__R   R   R   R   R   R   R   R   R   (    (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyR      s   			t   ScreenGrabFormatc           B` s    e  Z d  Z d „  Z d „  Z RS(   s"   The ScreenGrabFormat provided a means to grab screenshots using
    the uri of "<screen>".
    
    This functionality is provided via Pillow. Note that "<screen>" is
    only supported on Windows and OS X.
    
    Parameters for reading
    ----------------------
    No parameters.
    c         C` s:   | j  d d k r t S| j d k r* t St |  j ƒ  ƒ S(   Ni   s   i?s   <screen>(   t   modeR   t   filenamet   boolR   (   R   R   (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyt	   _can_readC   s
    c         C` sO   |  j  ƒ  } | s t ‚ | j ƒ  } | d  k	 s6 t ‚ t j | ƒ } | i  f S(   N(   R   t   AssertionErrort   grabR   t   npt   asarray(   R   R    R   t   pil_imt   im(    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyR   J   s    (   R!   R"   R#   R(   R   (    (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyR$   7   s   
	t   ClipboardGrabFormatc           B` s    e  Z d  Z d „  Z d „  Z RS(   s1   The ClipboardGrabFormat provided a means to grab image data from
    the clipboard, using the uri "<clipboard>"
    
    This functionality is provided via Pillow. Note that "<clipboard>" is
    only supported on Windows.
    
    Parameters for reading
    ----------------------
    No parameters.
    c         C` s:   | j  d d k r t S| j d k r* t St |  j ƒ  ƒ S(   Ni   s   i?s   <clipboard>(   R%   R   R&   R'   R   (   R   R   (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyR(   `   s
    c         C` sX   |  j  ƒ  } | s t ‚ | j ƒ  } | d  k r? t d ƒ ‚ n  t j | ƒ } | i  f S(   Ns5   There seems to be no image data on the clipboard now.(   R   R)   t   grabclipboardR   t   RuntimeErrorR+   R,   (   R   R    R   R-   R.   (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyR   g   s    (   R!   R"   R#   R(   R   (    (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyR/   T   s   
	t
   screengrabs(   Grab screenshots (Windows and OS X only)t   it   clipboardgrabs"   Grab from clipboard (Windows only)(   R#   t
   __future__R    R   R   R   t   numpyR+   t    R   t   coreR   R   R$   R/   R   t
   add_format(    (    (    s3   lib/python2.7/site-packages/imageio/plugins/grab.pyt   <module>   s   (!