§
    ¢”jW(  ã                  ó.  — d dl mZ d dlZd dlZd dlZd dlmZmZmZ ddl	m
Z
mZ ddlmZ dZd1d„Zg d¢Zd2d„Zd3d„Z G d„ dej        ¦  «        Zd4d5d„Zd6d„Zd7d"„Zd7d#„Z e
j        ej        e¦  «          e
j        ej        e¦  «         ed$k    �r� eej        ¦  «        d%k     r ed&¦  «          ej        ¦   «          ej        d         Z  ee ¦  «        s ed'¦  «          ej        ¦   «           e
j!        e ¦  «        5 Z" ed(e"› �¦  «          ed)e"j        › �¦  «          ed*e"j#        › �¦  «          ed+e"j$        › �¦  «          ed,d-¬.¦  «          ee" %                    ¦   «         ¦  «          eej        ¦  «        d%k    rqej        d%         Z&e" '                    e
j(        j)        ¦  «        Z* ed/ej+         ,                    e ¦  «        › d0e&› d-�¦  «         e* -                    e&ej        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS dS )8é    )ÚannotationsN)ÚIOÚAnyÚcasté   )ÚImageÚ	ImageFile)ÚDeferredErrorFÚfr   ÚreturnÚintc                ól   — 	 t          | ¦  «        }| |z
  dk    rdS dS # t          t          f$ r Y dS w xY w)Nr   r   )r   Ú
ValueErrorÚOverflowError)r   Úis     úd/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/PIL/SpiderImagePlugin.pyÚisIntr   0   sP   € ðÝ�‰FŒFˆØˆq‰5�AŠ:ˆ:Ø�1à�1øÝ�Ð&ð ð ð Øˆqˆqðøøøs   ‚ ž3²3)r   é   iõÿÿÿiôÿÿÿiëÿÿÿiêÿÿÿÚtútuple[float, ...]c                ó  — d| z   }dD ]}t          ||         ¦  «        s dS Œt          |d         ¦  «        }|t          vrdS t          |d         ¦  «        }t          |d         ¦  «        }t          |d         ¦  «        }|||z  k    rdS |S )N©éc   )r   é   é   é   é   é   é   r   r   r   r   r   )r   r   Úiforms)r   Úhr   ÚiformÚlabrecÚlabbytÚlenbyts          r   ÚisSpiderHeaderr&   D   sŸ   € Ø�‰	€Aà&ð ð ˆÝ�Q�q”T‰{Œ{ð 	Ø�1�1ð	õ ��!”‰IŒI€EØ•FÐÐØˆqå��2”‰ZŒZ€FÝ��2”‰ZŒZ€FÝ��2”‰ZŒZ€FØ�&˜6‘/Ò"Ð"Øˆqà€Mó    ÚfilenameÚstrc                ó  — t          | d¦  «        5 }|                     d¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        d|¦  «        }t	          |¦  «        }|dk    r$t          j        d|¦  «        }t	          |¦  «        }|S )NÚrbé\   z>23fr   z<23f)ÚopenÚreadÚstructÚunpackr&   )r(   Úfpr   r   Úhdrlens        r   ÚisSpiderImager3   X   s½   € Ý	ˆh˜Ñ	Ô	ð  Ø�GŠG�B‰KŒKˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åŒ�f˜aÑ Ô €AÝ˜AÑÔ€FØ�‚{€{ÝŒM˜& !Ñ$Ô$ˆÝ Ñ"Ô"ˆØ€Ms   ‘3³7º7c                  ó„   — e Zd ZdZdZdZdd„Zedd„¦   «         Zedd
„¦   «         Z	dd„Z
dd„Zddd„ZerddlmZ dd„ZdS )ÚSpiderImageFileÚSPIDERzSpider 2D imageFr   ÚNonec                óú  — d}| j         €J ‚| j                              |¦  «        }	 d| _        t          j        d|¦  «        }t          |¦  «        }|dk    r+d| _        t          j        d|¦  «        }t          |¦  «        }|dk    rd}t          |¦  «        ‚n)# t          j        $ r}d}t          |¦  «        |‚d }~ww xY wd|z   }t          |d         ¦  «        }|dk    rd	}t          |¦  «        ‚t          |d
         ¦  «        t          |d         ¦  «        f| _	        t          |d         ¦  «        | _
        t          |d         ¦  «        | _        | j
        dk    r| j        dk    r
|}	d| _        n°| j
        dk    rl| j        dk    rat          |d
         ¦  «        t          |d         ¦  «        z  dz  | _        || _        t          |d         ¦  «        | _        |dz  }	d| _        n9| j
        dk    r| j        dk    r|| j        z   }	d| _
        nd}t          |¦  «        ‚| j        rd| _        nd| _        d| _        t%          j        dd| j        z   |	| j        ¦  «        g| _        | j         | _        d S )Nél   r   z>27fr   z<27fznot a valid Spider filer   r   znot a Spider 2D imager   r   é   é   é   é   z inconsistent stack header valueszF;32BFzF;32FÚFÚraw©r   r   )r1   r.   Ú	bigendianr/   r0   r&   ÚSyntaxErrorÚerrorr   Ú_sizeÚistackÚ	imgnumberÚ_nimagesÚimgbytesr2   Ú	stkoffsetÚrawmodeÚ_moder	   Ú_TileÚsizeÚtileÚ_fp)
ÚselfÚnr   r   r2   ÚmsgÚer!   r"   Úoffsets
             r   Ú_openzSpiderImageFile._openh   sn  € àˆØŒwÐ"Ð"Ð"ØŒG�LŠL˜‰OŒOˆð	*ØˆDŒNÝ”˜f aÑ(Ô(ˆAÝ# AÑ&Ô&ˆFØ˜Š{ˆ{Ø!"�”Ý”M &¨!Ñ,Ô,�Ý'¨Ñ*Ô*�Ø˜Š{ˆ{Ø/�Ý! #Ñ&Ô&Ð&ð øõ Œ|ð 	*ð 	*ð 	*Ø+ˆCÝ˜cÑ"Ô"¨Ð)øøøøð	*øøøð �A‰IˆÝ�A�a”D‘	”	ˆØ�AŠ:ˆ:Ø)ˆCÝ˜cÑ"Ô"Ð"å˜˜2œ‘Z”Z¥ Q q¤T¡¤Ð*ˆŒ
Ý˜!˜Bœ%‘j”jˆŒÝ˜Q˜rœU™œˆŒàŒ;˜!ÒÐ ¤°!Ò 3Ð 3àˆFØˆDŒMˆMØŒ[˜1Š_ˆ_ ¤°1Ò!4Ð!4å  "¤™JœJ­¨Q¨q¬T©¬Ñ2°QÑ6ˆDŒMØ ˆDŒKÝ  "¤™JœJˆDŒMà˜a‘ZˆFØˆDŒNˆNØŒ[˜AÒÐ $¤.°1Ò"4Ð"4à˜dœnÑ,ˆFØˆDŒKˆKà4ˆCÝ˜cÑ"Ô"Ð"àŒ>ð 	#Ø#ˆDŒLˆLà"ˆDŒLØˆŒ
å”_ U¨F°T´YÑ,>ÀÈÌÑUÔUÐVˆŒ	Ø”7ˆŒˆˆs   §A3B ÂCÂ*B<Â<Cr   c                ó   — | j         S ©N©rG   ©rP   s    r   Ún_frameszSpiderImageFile.n_frames¤   s
   € àŒ}Ðr'   Úboolc                ó   — | j         dk    S ©Nr   rX   rY   s    r   Úis_animatedzSpiderImageFile.is_animated¨   s   € àŒ}˜qÒ Ð r'   c                ó0   — | j         dk     rdS | j         dz
  S )Nr   r   )rF   rY   s    r   ÚtellzSpiderImageFile.tell­   s!   € ØŒ>˜AÒÐØ�1à”> AÑ%Ð%r'   Úframec                ót  — | j         dk    rd}t          |¦  «        ‚|                      |¦  «        sd S t          | j        t
          ¦  «        r| j        j        ‚| j        || j        | j        z   z  z   | _	        | j        | _
        | j
                             | j	        ¦  «         |                      ¦   «          d S )Nr   z#attempt to seek in a non-stack file)rE   ÚEOFErrorÚ_seek_checkÚ
isinstancerO   r
   Úexr2   rH   rI   r1   ÚseekrU   )rP   ra   rR   s      r   rg   zSpiderImageFile.seek³   s¥   € ØŒ;˜!ÒÐØ7ˆCÝ˜3‘-”-ÐØ×Ò Ñ&Ô&ð 	ØˆFÝ�d”h¥Ñ.Ô.ð 	Ø”(”+ÐØœ u°´¸d¼mÑ0KÑ'LÑLˆŒØ”(ˆŒØŒ�Š�T”^Ñ$Ô$Ð$Ø�
Š
‰Œˆˆˆr'   éÿ   ÚdepthúImage.Imagec                ó@  ‡‡— |                       ¦   «         }t          |d         t          ¦  «        sJ ‚t          t          t          t          f         |¦  «        \  }}dŠ||k    r|||z
  z  Š‰ |z  Š|                      ˆˆfd„¦  «                             d¦  «        S )Nr   r   c                ó   •— | ‰z  ‰z   S rW   © )r   ÚbÚms    €€r   ú<lambda>z.SpiderImageFile.convert2byte.<locals>.<lambda>É   s   ø€  A¨¡E¨A¡I€ r'   ÚL)Ú
getextremare   Úfloatr   ÚtupleÚpointÚconvert)rP   ri   ÚextremaÚminimumÚmaximumrn   ro   s        @@r   Úconvert2bytezSpiderImageFile.convert2byteÁ   s¡   øø€ Ø—/’/Ñ#Ô#ˆÝ˜' !œ*¥eÑ,Ô,Ð,Ð,Ð,Ý¥¥e­U lÔ 3°WÑ=Ô=Ñˆ�ØˆØ�gÒÐØ˜ 7Ñ*Ñ+ˆAØˆB�‰LˆØ�zŠzÐ-Ð-Ð-Ð-Ð-Ñ.Ô.×6Ò6°sÑ;Ô;Ð;r'   r   ©ÚImageTkúImageTk.PhotoImagec                ó`   — ddl m} |                     |                      ¦   «         d¬¦  «        S )Nr   r{   é   )Úpalette)Ú r|   Ú
PhotoImagerz   )rP   r|   s     r   ÚtkPhotoImagezSpiderImageFile.tkPhotoImageÏ   s9   € ØÐÐÐÐÐà×!Ò! $×"3Ò"3Ñ"5Ô"5¸sÐ!ÑCÔCÐCr'   N)r   r7   )r   r   )r   r[   )ra   r   r   r7   )rh   )ri   r   r   rj   )r   r}   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrU   ÚpropertyrZ   r^   r`   rg   rz   ÚTYPE_CHECKINGr�   r|   rƒ   rm   r'   r   r5   r5   c   sñ   € € € € € Ø€FØ*ÐØ(-Ð%ð:ð :ð :ð :ðx ðð ð ñ „Xðð ð!ð !ð !ñ „Xð!ð&ð &ð &ð &ðð ð ð ð<ð <ð <ð <ð <ð ð ØÐÐÐÐÐðDð Dð Dð Dð Dð Dr'   r5   Úfilelistúlist[str] | Noneúlist[Image.Image] | Nonec                óø  — | �t          | ¦  «        dk     rdS g }| D ]Ý}t          j                             |¦  «        st	          d|› �¦  «         Œ4	 t          j        |¦  «        5 }t          |t          ¦  «        sJ ‚| 	                    ¦   «         }ddd¦  «         n# 1 swxY w Y   n1# t          $ r$ t          |¦  «        st	          |› d�¦  «         Y Œºw xY w||j        d<   |                     |¦  «         ŒÞ|S )zJcreate a list of :py:class:`~PIL.Image.Image` objects for use in a montageNr   zunable to find z is not a Spider image filer(   )ÚlenÚosÚpathÚexistsÚprintr   r-   re   r5   rz   Ú	Exceptionr3   ÚinfoÚappend)rŒ   Ú	byte_imgsÚimgÚimÚbyte_ims        r   ÚloadImageSeriesrœ   Ú   s`  € àÐ�3˜x™=œ=¨1Ò,Ð,Øˆtà€IØð "ð "ˆÝŒw�~Š~˜cÑ"Ô"ð 	ÝÐ) CÐ)Ð)Ñ*Ô*Ð*Øð	Ý”˜C‘”ð , BÝ! "¥oÑ6Ô6Ð6Ð6Ð6ØŸ/š/Ñ+Ô+�ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,øøõ ð 	ð 	ð 	Ý  Ñ%Ô%ð ;Ý˜Ð9Ð9Ð9Ñ:Ô:Ð:ØˆHð	øøøð $'ˆŒ�ZÑ Ø×Ò˜Ñ!Ô!Ð!Ð!ØÐs6   ÁB)Á%,BÂB)ÂB!	Â!B)Â$B!	Â%B)Â)+CÃCrš   rj   úlist[bytes]c                ó  — | j         \  }}t          d|¦  «        dz  }t          d|z  ¦  «        }d|z  dk    r|dz  }||z  }t          |dz  ¦  «        }|dk     rg S dg|z  }d|d<   t          |¦  «        |d<   t          |¦  «        |d	<   d|d
<   t          |¦  «        |d<   t          |¦  «        |d<   t          |¦  «        |d<   t          |¦  «        |d<   |dd …         }|                     d¦  «         d„ |D ¦   «         S )Nr   r<   i   r   r   g        g      ð?r   r   r   r   r   r   c                ó8   — g | ]}t          j        d |¦  «        ‘ŒS )r   )r/   Úpack)Ú.0Úvs     r   ú
<listcomp>z$makeSpiderHeader.<locals>.<listcomp>  s$   € Ð-Ð-Ð- A�FŒK˜˜QÑÔÐ-Ð-Ð-r'   )rM   Úmaxr   rs   r—   )rš   ÚnsamÚnrowr%   r#   r$   ÚnvaluesÚhdrs           r   ÚmakeSpiderHeaderr©   õ   s  € Ø”�J€Dˆ$Ý��D‰\Œ\˜AÑ€FÝ�˜‘ÑÔ€FØˆf�}˜ÒÐØ�!‰ˆØ�f‰_€FÝ�&˜1‘*‰oŒo€GØ�‚|€|Øˆ	àˆ%�'‰/€Cð €Cˆ�FÝ�4‰[Œ[€Cˆ�FÝ�4‰[Œ[€Cˆ�FØ€Cˆ�FÝ�D‰kŒk€Cˆ�GÝ�F‰mŒm€Cˆ�GÝ�F‰mŒm€Cˆ�GÝ�F‰mŒm€Cˆ�Gð ˆaˆbˆbŒ'€CØ‡J‚Jˆs�O„O€Oà-Ð-¨Ð-Ñ-Ô-Ð-r'   r1   ú	IO[bytes]ústr | bytesr7   c           
     óB  — | j         dk    r|                      d¦  «        } t          | ¦  «        }t          |¦  «        dk     rd}t	          |¦  «        ‚|                     |¦  «         d}t          j        | |t          j        dd| j	        z   d|¦  «        g¦  «         d S )Nr>   r   zError creating Spider headerzF;32NFr?   r@   r   )
Úmoderv   r©   r�   ÚOSErrorÚ
writelinesr	   Ú_saverL   rM   )rš   r1   r(   r¨   rR   rJ   s         r   r°   r°     s–   € Ø	„w�#‚~€~Ø�ZŠZ˜‰_Œ_ˆå
˜2Ñ
Ô
€CÝ
ˆ3�x„x�#‚~€~Ø,ˆÝ�c‰lŒlÐð ‡M‚M�#ÑÔÐà€GÝ„O�B˜�Yœ_¨U°F¸R¼WÑ4DÀaÈÑQÔQÐRÑSÔSÐSÐSÐSr'   c                ó
  — t           j                             |¦  «        d         x}rJt          |t          ¦  «        r|                     ¦   «         n|}t          j        t          j	        |¦  «         t          | ||¦  «         d S r]   )r‘   r’   Úsplitextre   ÚbytesÚdecoder   Úregister_extensionr5   r‡   r°   )rš   r1   r(   Úfilename_extÚexts        r   Ú_save_spiderr¸   #  sw   € å”w×'Ò'¨Ñ1Ô1°!Ô4Ð4€|ð >Ý'1°,ÅÑ'FÔ'FÐXˆl×!Ò!Ñ#Ô#Ð#ÈLˆÝÔ ¥Ô!7¸Ñ=Ô=Ð=Ý	ˆ"ˆb�(ÑÔÐÐÐr'   Ú__main__r   z7Syntax: python3 SpiderImagePlugin.py [infile] [outfile]z$input image must be in Spider formatzimage: zformat: zsize: zmode: z
max, min: ú )Úendzsaving a flipped version of z as )r   r   r   r   )r   r   r   r   )r(   r)   r   r   rW   )rŒ   r�   r   rŽ   )rš   rj   r   r�   )rš   rj   r1   rª   r(   r«   r   r7   ).Ú
__future__r   r‘   r/   ÚsysÚtypingr   r   r   r�   r   r	   Ú_utilr
   r‹   r   r    r&   r3   r5   rœ   r©   r°   r¸   Úregister_openr‡   Úregister_saver„   r�   Úargvr”   Úexitr(   r-   rš   rM   r­   rr   ÚoutfileÚ	transposeÚ	TransposeÚFLIP_LEFT_RIGHTÚtransposed_imr’   ÚbasenameÚsaverm   r'   r   ú<module>rË      sÉ  ððF #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø 
€
€
€
Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à€ðð ð ð ð 
$Ð	#Ð	#€ðð ð ð ð(ð ð ð ðoDð oDð oDð oDð oD�iÔ)ñ oDô oDð oDðnð ð ð ð ð6.ð .ð .ð .ð<Tð Tð Tð Tð ð ð ð ð €Ô �OÔ*¨OÑ <Ô <Ð <Ø €Ô �OÔ*¨LÑ 9Ô 9Ð 9àˆzÒÑØ
€sˆ3Œ8�}„}�qÒÐØˆÐGÑHÔHÐHØˆŒ‰
Œ
ˆ
àŒx˜Œ{€HØˆ=˜Ñ"Ô"ð ØˆÐ4Ñ5Ô5Ð5ØˆŒ‰
Œ
ˆ
à	ˆŒ�HÑ	Ô	ð @ Øˆˆn˜ˆnˆnÑÔÐØˆÐ$˜œÐ$Ð$Ñ%Ô%Ð%ØˆÐ �r”wÐ Ð Ñ!Ô!Ð!ØˆÐ �r”wÐ Ð Ñ!Ô!Ð!Øˆˆl Ð$Ñ$Ô$Ð$Øˆˆb�mŠm‰oŒoÑÔÐàˆ3ˆsŒx‰=Œ=˜1ÒÐØ”h˜q”kˆGð ŸLšL¨¬Ô)HÑIÔIˆMØˆEð!¨r¬w×/?Ò/?ÀÑ/IÔ/Ið !ð !Øð!ð !ð !ñô ð ð ×Ò˜w¨Ô(>Ñ?Ô?Ð?ð#@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @ð Ðs   ÄC7HÈHÈH