
hR\R                 @   s  d  d l  m Z d  d l m Z d  d l Z d  d l Z e j d" k rZ d  d l m Z n d  d l	 m Z g  Z
 d d d  Z d d	 d
  Z Gd d   d e  Z e j d k r Gd d   d e  Z e e  n e j d k rGd d   d e  Z e e  n d d   Z Gd d   d e  Z Gd d   d e  Z e d  rYe e  n  Gd d   d e  Z e d  re e  n  Gd d   d e  Z e d  re e  n  e d  k re e e j e j d  e j d! d    n  d S)#    )print_function)ImageN   )quote   c             C   ss   y t  |  t  r |    }  n  Wn t k
 r3 Yn X| d k rP t j |   n | d k  ro t j d |   n  d  S)Nr   )
issubclassViewer	TypeError_viewersappendinsert)viewerorder r   B/var/www/dbchiro/venv/lib/python3.4/site-packages/PIL/ImageShow.pyregister   s    r   c             K   s1   x* t  D]" } | j |  d | | r d Sq Wd S)a  
    Display a given image.

    :param image: An image object.
    :param title: Optional title.  Not all viewers can display the title.
    :param \**options: Additional viewer options.
    :returns: True if a suitable viewer was found, false otherwise.
    titler   r   )r
   show)imager   optionsr   r   r   r   r   )   s    	r   c               @   sj   e  Z d  Z d Z d d   Z d Z i  Z d d   Z d d   Z d	 d
   Z	 d d   Z
 d d   Z d S)r   zBase class for viewers.c             K   s   | j  d  d  d k r" d } n t j | j   } | | j  k rs | j  d k rs | j  d k rs | j |  } n  |  j | |  S)N   zI;16L1ZRGBA)moder   Zgetmodebaseconvert
show_image)selfr   r   baser   r   r   r   =   s    	-zViewer.showNc             C   s   |  j  S)z.Return format name, or None to save as PGM/PPM)format)r   r   r   r   r   
get_formatR   s    zViewer.get_formatc             K   s
   t   d  S)N)NotImplementedError)r   filer   r   r   r   get_commandV   s    zViewer.get_commandc             C   s   | j  d |  j |  |  j  S)z+Save to temporary file, and return filenamer   )_dumpr   r   )r   r   r   r   r   
save_imageY   s    zViewer.save_imagec             K   s   |  j  |  j |  |  S)zDisplay given image)	show_filer$   )r   r   r   r   r   r   r   ]   s    zViewer.show_imagec             K   s   t  j |  j | |   d S)zDisplay given filer   )ossystemr"   )r   r!   r   r   r   r   r%   a   s    zViewer.show_file)__name__
__module____qualname____doc__r   r   r   r   r"   r$   r   r%   r   r   r   r   r   8   s   r   win32c               @   s"   e  Z d  Z d Z d d   Z d S)WindowsViewerZBMPc             K   s   d | | f S)NzDstart "Pillow" /WAIT "%s" && ping -n 2 127.0.0.1 >NUL && del /f "%s"r   )r   r!   r   r   r   r   r"   n   s    zWindowsViewer.get_commandN)r(   r)   r*   r   r"   r   r   r   r   r-   k   s   r-   darwinc               @   s/   e  Z d  Z d Z i d d 6Z d d   Z d S)	MacViewerPNGr   compress_levelc             K   s)   d } d | t  |  t  |  f } | S)Nz!open -a /Applications/Preview.appz(%s %s; sleep 20; rm -f %s)&)r   )r   r!   r   commandr   r   r   r"   {   s    zMacViewer.get_commandN)r(   r)   r*   r   r   r"   r   r   r   r   r/   w   s   r/   c             C   s}   t  j j d  } | s d  SxZ | j t  j  D]F } t  j j | |   } t  j j |  r/ t  j | t  j	  r/ | Sq/ Wd  S)NPATH)
r&   environgetsplitpathseppathjoinisfileaccessX_OK)
executabler8   dirnamefilenamer   r   r   which   s    'r@   c               @   s/   e  Z d  Z d Z i d d 6Z d d   Z d S)
UnixViewerr0   r   r1   c             K   sH   |  j  | |  \ } } d | t |  t |  f } t j |  d S)Nz(%s %s; rm -f %s)&r   )get_command_exr   r&   r'   )r   r!   r   r2   r=   r   r   r   r%      s
    zUnixViewer.show_fileN)r(   r)   r*   r   r   r%   r   r   r   r   rA      s   rA   c               @   s   e  Z d  Z d d   Z d S)DisplayViewerc             K   s   d } } | | f S)Ndisplayr   )r   r!   r   r2   r=   r   r   r   rB      s    
zDisplayViewer.get_command_exN)r(   r)   r*   rB   r   r   r   r   rC      s   rC   rD   c               @   s   e  Z d  Z d d   Z d S)	EogViewerc             K   s   d } } | | f S)Neogr   )r   r!   r   r2   r=   r   r   r   rB      s    
zEogViewer.get_command_exN)r(   r)   r*   rB   r   r   r   r   rE      s   rE   rF   c               @   s   e  Z d  Z d d d  Z d S)XVViewerNc             K   s1   d } } | r' | d t  |  7} n  | | f S)Nxvz	 -name %s)r   )r   r!   r   r   r2   r=   r   r   r   rB      s    
zXVViewer.get_command_ex)r(   r)   r*   rB   r   r   r   r   rG      s   rG   rH   __main__   )r   r   )
__future__r   PILr   r&   sysversion_infoshlexr   Zpipesr
   r   r   objectr   platformr-   r/   r@   rA   rC   rE   rG   r(   printopenargvr   r   r   r   <module>   s:   1
	