K iz' ddlmZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z gZ d)d*dZd+d,dZGd d ZGd d eZej$d k(reeGddeZej$dk(reeGddej(eZGddeZGddeZGddeZGddeZGddeZej$dvrej6dreeej6dreeej6d reeej6d!reeej6d"reeGd#d$eZ dd%lmZeee!d&k(rse"ejFd'kre$d(ejJe jLejFd5Z'e$ee'gejFd'ddddyy#e $rYwxYw#1swYyxYw)-) annotationsNquote)Any)Imagect|trt|tr|}|dkDrtj |ytj d|y)a$ The :py:func:`register` function is used to register additional viewers:: from PIL import ImageShow ImageShow.register(MyViewer()) # MyViewer will be used as a last resort ImageShow.register(MySecondViewer(), 0) # MySecondViewer will be prioritised ImageShow.register(ImageShow.XVViewer(), 0) # XVViewer will be prioritised :param viewer: The viewer to be registered. :param order: Zero or a negative integer to prepend this viewer to the list, a positive integer to append it. rN) isinstancetype issubclassViewer_viewersappendinsert)viewerorders S/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/ImageShow.pyregisterrs?&$Jvv$> qy6"c HtD]}|j|fd|i|syy)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. titleTF)rshow)imageroptionsrs rrr3s3 6;;u 5E 5W 5 rcbeZdZUdZd dZdZded< iZded< ddZdd Z dd Z d d Z dd Z y)r zBase class for viewers.rc |jdvs\|jdk(r|jdvs?tj|j}|j|k7r|j |}|j |fi|S)z The main function for displaying an image. Converts the given image to the target format and displays it. )1RGBAPNG)zI;16LA)modeformatr getmodebaseconvert show_image)selfrrbases rrz Viewer.showGsk JJ- ' u$~)E$$UZZ0DzzT! d+tu000rN str | Noner"zdict[str, Any]c|jS)z3Return format name, or ``None`` to save as PGM/PPM.)r"r&rs r get_formatzViewer.get_format^s {{rc d}t|)zj Returns the command used to display the file. Not implemented in the base class. zunavailable in base viewer)NotImplementedError)r&filermsgs r get_commandzViewer.get_commandbs +!#&&rc\|jdd|j|i|jS)z+Save to temporary file and return filename.r")_dumpr+rr*s r save_imagezViewer.save_imagejs(u{{I$//%"8IDLLIIrc F|j|j|fi|S)zDisplay the given image.) show_filer4r&rrs rr%zViewer.show_imagens!t~~dooe4@@@rc tjj|sttj|j |fi|y)% Display given file. r)ospathexistsFileNotFoundErrorsystemr0r&r;rs rr6zViewer.show_filers<ww~~d## # "$""43734rr Image.Imagerrreturnint)rrArBr(r.strrrrBrE)rrArBrEr;rErrrBrC) __name__ __module__ __qualname____doc__rr"__annotations__rr+r0r4r%r6r2rrr r BsA!1$FJ/ G^ 7'JArr c.eZdZdZdZdddZd dZd dZy) WindowsViewerzNThe default viewer on Windows is the default system application for PNG files.rrTcompress_levelsave_allc d|d|dS)Nzstart "Pillow" /WAIT "z)" && ping -n 4 127.0.0.1 >NUL && del /f ""r2r&r.rs rr0zWindowsViewer.get_commands$TF+q " rc tjj|stt j |j |fi|dttdy)r9TCREATE_NO_WINDOW)shell creationflagsr)r:r;r<r= subprocessPopenr0getattrr?s rr6zWindowsViewer.show_filesPww~~d## # D  T -W -!*.@A rNrDrFrGrHrIrJr"rr0r6r2rrrMrMsX F!"5G  rrMwin32c.eZdZdZdZdddZd dZd dZy) MacViewerz2The default viewer on macOS using ``Preview.app``.rrTrNc Fd}d|dt|dt|d}|S)Nzopen -a Preview.app( z; sleep 20; rm -f z)&rr&r.rcommands rr0zMacViewer.get_commands1(gYad },>uT{m2Nrc Ttjj|stt j ddd|gt tddxrttd}| xrtjxstjd}|rt j|dd |gy ) r9openz-az Preview.appfrozenF_MEIPASSpython3z-czA# # rrc eZdZdZddZddZy)GmDisplayViewerz*The GraphicsMagick ``gm display`` command.c d}d}||fS)Ngmz gm displayr2r&r.rrlrcs rruzGmDisplayViewer.get_command_exs  ""rc ~tjj|stt j dd|gy)r9rrrrr?s rr6zGmDisplayViewer.show_file s2ww~~d## #$ 401rNrwrFrr2rrrrs4# rrc eZdZdZddZddZy) EogViewerz'The GNOME Image Viewer ``eog`` command.c d}d}||fS)Neogzeog -nr2rs rruzEogViewer.get_command_exs  ""rc ~tjj|stt j dd|gy)r9rz-nrrr?s rr6zEogViewer.show_files2ww~~d## #%t,-rNrwrFrr2rrrrs1# rrc2eZdZdZ d ddZddZy)XVViewerzX The X Viewer ``xv`` command. This viewer supports the ``title`` parameter. Nc 8dx}}|r|dt|z }||fS)Nxvz -name rrs rruzXVViewer.get_command_ex-s1 $#*  u/ /G ""rc tjj|stdg}|j d}|r|d|gz }|j |t j|y)r9rrz-namerrrs rr6zXVViewer.show_file7s^ww~~d## #v G$  We$ $D DrrtrrFrr2rrrr's6 .2## *#>A# # rr)r\rpr~rrrrceZdZdZddZy) IPythonViewerz!The viewer for IPython frontends.c t|y)Nr)ipython_displayr7s rr%zIPythonViewer.show_imageWs rNr@)rGrHrIrJr%r2rrrrTs +rr)r__main__z.Syntax: python3 ImageShow.py imagefile [title])r)rztype[Viewer] | ViewerrrCrBNonert)rrArr(rrrBbool)( __future__rryr:rmrXrjshlexrtypingrrrrrr rMplatformr^ABCrrr|rrrrrnrIPython.displayrr ImportErrorrGlenargvprintexitreimr2rrrs#   #, 77zF6<<7 ]  F<<8 Y *& * &J<j$ $z@<<**v||Jv||Iv||D!v||Ev||DF: ] z 388}q >? CHHQK 'B d2% %&''    ''s0G7H7G?>G?H