B .^ @sddlZddlZddlZddlZddlZddlmZddlmZgZ dddZ d ddZ Gd d d Z ej d krGd d d e Ze enej dkrGddde Ze enzGddde ZGdddeZedre eGdddeZedre eGdddeZedr(e eedkreejdkrRedeeejd"Zee efejddWdQRXdS)!N)quote)ImagecCsVyt|tr|}Wntk r(YnX|dkr>t|n|dkrRtd|dS)Nr) issubclassViewer TypeError_viewersappendinsert)viewerorderr 1/tmp/pip-install-mwhup7aw/Pillow/PIL/ImageShow.pyregisters   rcKs,x&tD]}|j|fd|i|rdSqWdS)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. titlerr)rshow)imageroptionsr r r rr&s rc@sHeZdZdZddZdZiZddZddZd d Z d d Z d dZ dS)rzBase class for viewers.cKsL|jdks>|jdkr|jdks>t|j}|j|kr>||}|j|f|S)N)1ZRGBAPNGZLA)modeformatrZ getmodebaseconvert show_image)selfrrbaser r rr:s    z Viewer.showNcCs|jS)z.Return format name, or None to save as PGM/PPM)r)rrr r r get_formatKszViewer.get_formatcKstdS)N)NotImplementedError)rfilerr r r get_commandOszViewer.get_commandcCs|jfd||i|jS)z+Save to temporary file, and return filenamer)_dumprr)rrr r r save_imageRszViewer.save_imagecKs|j||f|S)zDisplay given image) show_filer!)rrrr r rrVszViewer.show_imagecKst|j|f|dS)zDisplay given filer)ossystemr)rrrr r rr"ZszViewer.show_file) __name__ __module__ __qualname____doc__rrrrrr!rr"r r r rr5srwin32c@s eZdZdZddiZddZdS) WindowsViewerrcompress_levelrcKs d||fS)NzDstart "Pillow" /WAIT "%s" && ping -n 2 127.0.0.1 >NUL && del /f "%s"r )rrrr r rriszWindowsViewer.get_commandN)r%r&r'rrrr r r rr*esr*darwinc@s(eZdZdZddiZddZddZdS) MacViewerrr+rcKsd}d|t|t|}|S)Nzopen -a Preview.appz({} {}; sleep 20; rm -f {})&)rr)rrrcommandr r rrxszMacViewer.get_commandc Ksdt\}}t|d}||WdQRXt|d}tjdgd|dWdQRXt|dS)zDisplay given filewNrz7im=$(cat); open -a Preview.app $im; sleep 20; rm -f $imT)shellstdinr) tempfilemkstempr#fdopenwriteopen subprocessPopenremove)rrrfdpathfr r rr"s   zMacViewer.show_fileN)r%r&r'rrrr"r r r rr-ts r-c@s(eZdZdZddiZddZddZdS) UnixViewerrr+rcKs(|j|f|d}d|t|t|S)Nrz({} {}; rm -f {})&)get_command_exrr)rrrr.r r rrszUnixViewer.get_commandc Ks~t\}}t|d}||WdQRXt|d2}|j|f|d}tjd|dgd|dWdQRXt |d S) zDisplay given filer/Nr0rz im=$(cat);z $im; rm -f $imT)r1r2r) r3r4r#r5r6r7r?r8r9r:)rrrr;r<r=r.r r rr"s    zUnixViewer.show_fileN)r%r&r'rrrr"r r r rr>sr>c@seZdZddZdS) DisplayViewercKsd}}||fS)Ndisplayr )rrrr. executabler r rr?szDisplayViewer.get_command_exN)r%r&r'r?r r r rr@sr@rAc@seZdZddZdS) EogViewercKsd}}||fS)Neogr )rrrr.rBr r rr?szEogViewer.get_command_exN)r%r&r'r?r r r rrCsrCrDc@seZdZdddZdS)XVViewerNcKs$d}}|r|dt|7}||fS)Nxvz -name %s)r)rrrrr.rBr r rr?szXVViewer.get_command_ex)N)r%r&r'r?r r r rrEsrErF__main__z-Syntax: python ImageShow.py imagefile [title])r)N)r#shutilr8sysr3shlexrZPILrrrrrplatformr*r-r>r@whichrCrEr%lenargvprintexitr7Zimr r r rs@   .