1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
Ë
³òúhä(ã    ó—ddlmZddlZddlZddlZddlZddlZddlmZddl    m
Z
ddl m Z gZ d)d*d„Zd+d,d„ZGd    „d
«ZGd „d e«Zej$d k(ree«Gd„de«Zej$dk(ree«Gd„dej(e«ZGd„de«ZGd„de«ZGd„de«ZGd„de«ZGd„de«Zej$dvr‚ej6d«ree«ej6d«ree«ej6d «ree«ej6d!«ree«ej6d"«ree«Gd#„d$e«Z    dd%lmZee«e!d&k(rse"ejF«d'kre$d(«ejJ«e jLejFd«5Z'e$ee'gejFd'd¢­Ž«ddd«yy#e $rYŒ€wxYw#1swYyxYw)-é)Ú annotationsN©Úquote)ÚAnyé)ÚImagecó´—t|t«rt|t«r|«}|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)Ú
isinstanceÚtypeÚ
issubclassÚViewerÚ_viewersÚappendÚinsert)ÚviewerÚorders  ú@H:\Change_password\venv_build\Lib\site-packages\PIL/ImageShow.pyÚregisterrs?€ô&œ$Ô¤J¨v´vÔ$>Ù“ˆØ ˆq‚y܏‰˜Õ䏉˜˜6Õ"óc óH—tD]}|j|fd|i|¤ŽsŒyy)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)rÚshow)ÚimagerÚoptionsrs    rrr3s3€ôòˆØ ˆ6;‰;uÑ 5 EÐ 5¨WÓ 5Ùðð rcób—eZdZUdZd d„ZdZded<    iZded<    dd„Zdd    „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.
        )Ú1ÚRGBAÚPNG)zI;16ÚLA)ÚmodeÚformatrÚ getmodebaseÚconvertÚ
show_image)ÚselfrrÚbases    rrz Viewer.showGsk€ð J‰J˜-Ñ 'Ø— ‘ ˜uÒ$¨¯©°~Ñ)Eä×$Ñ$ U§Z¡ZÓ0ˆD؏z‰z˜TÒ!ØŸ ™  dÓ+àˆt‰˜uÑ0¨Ñ0Ð0rNú
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&ÚfilerÚmsgs    rÚ get_commandzViewer.get_commandbs€ð
+ˆÜ! #Ó&Ð&rcó\—|jdd|j|«i|j¤ŽS)z+Save to temporary file and return filename.r"©)Ú_dumpr+rr*s  rÚ
save_imagezViewer.save_imagejs(€àˆu{‰{ÑI $§/¡/°%Ó"8ÐI¸D¿L¹LÑIÐIrc óF—|j|j|«fi|¤ŽS)zDisplay the given image.)Ú    show_filer4©r&rrs   rr%zViewer.show_imagens!€àˆt~‰~˜dŸo™o¨eÓ4Ñ@¸Ñ@Ð@rc óš—tjj|«st‚tj|j
|fi|¤Ž«y)ú%
        Display given file.
        r)ÚosÚpathÚexistsÚFileNotFoundErrorÚsystemr0©r&r;rs   rr6zViewer.show_filers<€ôw‰w~‰~˜dÔ#Ü#Ð #Ü
    ‰    Ð"$×"Ñ" 4Ñ3¨7Ñ3Ô4Ør©rú Image.ImagerrÚreturnÚint)rrArBr(©r.ÚstrrrrBrE)rrArBrE©r;rErrrBrC) Ú__name__Ú
__module__Ú __qualname__Ú__doc__rr"Ú__annotations__rr+r0r4r%r6r2rrr r BsA…Ù!ó1ð$€FˆJÓØ/Ø €Gˆ^Ó Ø7óó'óJóAôrr có.—eZdZdZdZdddœZd    d„Zd
d„Zy) Ú WindowsViewerzNThe default viewer on Windows is the default system application for PNG files.rrT©Úcompress_levelÚsave_allc ó—d|›d|›dS)Nzstart "Pillow" /WAIT "z)" && ping -n 4 127.0.0.1 >NUL && del /f "ú"r2©r&r.rs   rr0zWindowsViewer.get_command…s€à$ T Fð+à˜˜qð "ð    
rc ó¼—tjj|«st‚t    j
|j |fi|¤Ždttd«¬«y)r9TÚCREATE_NO_WINDOW)ÚshellÚ creationflagsr)r:r;r<r=Ú
subprocessÚPopenr0Úgetattrr?s   rr6zWindowsViewer.show_fileŒsP€ôw‰w~‰~˜dÔ#Ü#Ð #Ü×ÑØ ˆD× Ñ ˜TÑ - WÑ -ØÜ!¤*Ð.@ÓAõ    
ð
rNrDrF©rGrHrIrJr"rr0r6r2rrrMrMs„ÙXà €FØ!"°Ñ5€Gó
ô rrMÚwin32có.—eZdZdZdZdddœZd    d„Zd
d„Zy) Ú    MacViewerz2The default viewer on macOS using ``Preview.app``.rrTrNc óF—d}d|›dt|«›dt|«›d}|S)Nzopen -a Preview.appú(ú z; sleep 20; rm -f z)&r©r&r.rÚcommands    rr0zMacViewer.get_command¤s1€ð(ˆØgY˜a¤ d£ ˜}Ð,>¼uÀT»{¸mÈ2ÐNˆØˆrc óT—tjj|«st‚t    j
ddd|g«t tdd«xrttd«}| xrtjxstjd«}|rt    j|dd    |g«y
) r9Úopenz-az Preview.appÚfrozenFÚ_MEIPASSÚpython3z-cz<import os, sys, time; time.sleep(20); os.remove(sys.argv[1])r) r:r;r<r=rXÚcallrZÚsysÚhasattrÚ
executableÚshutilÚwhichrY)r&r;rÚ pyinstallerrls     rr6zMacViewer.show_file«sŽ€ôw‰w~‰~˜dÔ#Ü#Ð #܏‰˜  }°dÐ;Ô<äœc 8¨UÓ3ÒP¼ÄÀZÓ8Pˆ Ø%oÒ8¬#¯.©.ÒT¼V¿\¹\È)Ó=Tˆ
Ù Ü × Ñ àØØRØð    ô ðrNrDrFr[r2rrr^r^žs„Ù<à €FØ!"°Ñ5€Góôrr^ÚdarwincóH—eZdZdZdddœZej dd„«Zd    d„Zy)
Ú
UnixViewerrrTrNc ó—y©Nr2rSs   rÚget_command_exzUnixViewer.get_command_exÉs€à rc óN—|j|fi|¤Žd}|›dt|«›S)Nrra)rurrbs    rr0zUnixViewer.get_commandÍs3€Ø%$×%Ñ% dÑ6¨gÑ6°qÑ9ˆØ˜!œE $›K˜=Ð)Ð)rN©r.rErrrBútuple[str, str]rD)    rGrHrIr"rÚabcÚabstractmethodrur0r2rrrrrrÅs.„Ø €FØ!"°Ñ5€Gà×Ñò óð ô*rrrcó —eZdZdZdd„Zdd„Zy)Ú    XDGViewerz3
    The freedesktop.org ``xdg-open`` command.
    c ó—dx}}||fS)Núxdg-openr2)r&r.rrcrls     rruzXDGViewer.get_command_ex×s€Ø)Ð)ˆ*ؘ
Ð"Ð"rc ó|—tjj|«st‚t    j
d|g«y)r9r~r©r:r;r<r=rXrYr?s   rr6zXDGViewer.show_fileÛs0€ôw‰w~‰~˜dÔ#Ü#Ð #Ü×ј* dÐ+Ô,ØrNrwrF©rGrHrIrJrur6r2rrr|r|Òs„ñó#ôrr|có2—eZdZdZ    d                            dd„Zdd„Zy)Ú DisplayViewerz`
    The ImageMagick ``display`` command.
    This viewer supports the ``title`` parameter.
    Nc ó8—dx}}|r|dt|«›z }||fS)NÚdisplayz -title r©r&r.rrrcrls      rruzDisplayViewer.get_command_exës1€ð )Ð(ˆ*Ù Ø ˜¤%¨£, Ð0Ñ 0ˆGؘ
Ð"Ð"rc óԗtjj|«st‚dg}|j    d«}|r|d|gz }|j |«t j|«y)r9r…rz-titler©r:r;r<r=ÚgetrrXrY©r&r;rÚargsrs     rr6zDisplayViewer.show_fileós^€ôw‰w~‰~˜dÔ#Ü#Ð #؈{ˆØ— ‘ ˜GÓ$ˆÙ Ø X˜uÐ%Ñ %ˆDØ  ‰ DÔä×Ñ˜ÔØrrt©r.rErr(rrrBrxrFrr2rrrƒrƒås6„ñð .2ð#Øð#Ø *ð#Ø>Að#à    ó#ô rrƒcó —eZdZdZdd„Zdd„Zy)ÚGmDisplayViewerz*The GraphicsMagick ``gm display`` command.c ó—d}d}||fS)NÚgmz
gm displayr2©r&r.rrlrcs     rruzGmDisplayViewer.get_command_exs€Øˆ
؈ؘ
Ð"Ð"rc ó~—tjj|«st‚t    j
dd|g«y)r9rr…rr€r?s   rr6zGmDisplayViewer.show_file s2€ôw‰w~‰~˜dÔ#Ü#Ð #Ü×ј$     ¨4Ð0Ô1ØrNrwrFrr2rrrŽrŽs„Ù4ó#ô
rrŽcó —eZdZdZdd„Zdd„Zy)Ú    EogViewerz'The GNOME Image Viewer ``eog`` command.c ó—d}d}||fS)NÚeogzeog -nr2r‘s     rruzEogViewer.get_command_exs€Øˆ
؈ؘ
Ð"Ð"rc ó~—tjj|«st‚t    j
dd|g«y)r9r–z-nrr€r?s   rr6zEogViewer.show_files2€ôw‰w~‰~˜dÔ#Ü#Ð #Ü×ј%  tÐ,Ô-ØrNrwrFrr2rrr”r”s„Ù1ó#ô
rr”có2—eZdZdZ    d                            dd„Zdd„Zy)ÚXVViewerzX
    The X Viewer ``xv`` command.
    This viewer supports the ``title`` parameter.
    Nc ó8—dx}}|r|dt|«›z }||fS)NÚxvz -name rr†s      rruzXVViewer.get_command_ex-s1€ð
 $Ð#ˆ*Ù Ø ˜¤ u£ Ð/Ñ /ˆGؘ
Ð"Ð"rc óԗtjj|«st‚dg}|j    d«}|r|d|gz }|j |«t j|«y)r9r›rz-namerrˆrŠs     rr6zXVViewer.show_file7s^€ôw‰w~‰~˜dÔ#Ü#Ð #؈vˆØ— ‘ ˜GÓ$ˆÙ Ø W˜eÐ$Ñ $ˆDØ  ‰ DÔä×Ñ˜ÔØrrtrŒrFrr2rrr™r™'s6„ñð .2ð#Øð#Ø *ð#Ø>Að#à    ó#ô rr™)r\rpr~r…rr–r›có—eZdZdZdd„Zy)Ú IPythonViewerz!The viewer for IPython frontends.c ó—t|«y)Nr)Úipython_displayr7s   rr%zIPythonViewer.show_imageWs €Ü˜ÔØrNr@)rGrHrIrJr%r2rrržržTs
„Ù+ôrrž)r…Ú__main__éz.Syntax: python3 ImageShow.py imagefile [title])r)rztype[Viewer] | ViewerrrCrBÚNonert)rrArr(rrrBÚbool)(Ú
__future__rryr:rmrXrjÚshlexrÚtypingrÚrrrrr rMÚplatformr^ÚABCrrr|rƒrŽr”r™rnržÚIPython.displayr…r Ú ImportErrorrGÚlenÚargvÚprintÚexitreÚimr2rrú<module>r²sðõ#ã
Û    Û ÛÛ
ÝÝåà €ô#ô, ÷7ñ7ôzFôð6‡<<7ÒÙ ˆ]Ôô ô ðF‡<<8ÒÙ ˆYÔô
*—‘˜&ô
*ô
ôô&Jôô<jôô$
ôô$ˆzôð@‡<<Ð*Ñ*Ø€v‡||JÔÙÔØ€v‡||IÔÙÔØ€v‡||DÔِÔ!Ø€v‡||EÔÙÔØ€v‡||DÔِÔôFôðÝ:ñ ˆ]Ôð ˆzÒÙ
ˆ38‰8ƒ}qÒÙ Ð>Ô?؈‰Œ
à    ˆ‰C—H‘H˜Q‘KÓ     ð' BÙ ‰d2Ð%˜Ÿ™  ˜ Ò%Ô&÷'ð'ð øð ò    Ùð    ú÷'ð'úsÅ0G7ÇHÇ7G?Ç>G?ÈH