§
    aÒ³g•'  ã                  ó"  — 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m	Z	 ddl
mZmZ d/d
„Zg d¢Zd0d„Zd1d„Z G d„ dej        ¦  «        Zd2d3d„Zd4d„Zd5d „Zd5d!„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¦  «        › d.e$› d+�¦  «         e  *                    e$ej        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS dS )6é    )ÚannotationsN)ÚIOÚTYPE_CHECKINGÚAnyÚcasté   )ÚImageÚ	ImageFileÚ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     úS/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/PIL/SpiderImagePlugin.pyÚisIntr   -   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&   A   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   U   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                              |¦  «        }	 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._opene   s`  € àˆØŒ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 ÂB8Â!B3Â3B8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                ó(  — | j         dk    rd}t          |¦  «        ‚|                      |¦  «        sd S | j        || j        | j        z   z  z   | _        | j        | _        | j                             | j        ¦  «         |  	                    ¦   «          d S )Nr   z#attempt to seek in a non-stack file)
rE   ÚEOFErrorÚ_seek_checkr2   rH   rI   rO   r1   ÚseekrU   )rP   ra   rR   s      r   re   zSpiderImageFile.seek¯   s‡   € ØŒ;˜!ÒÐØ7ˆCÝ˜3‘-”-ÐØ×Ò Ñ&Ô&ð 	ØˆFØœ 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)Ú
getextremaÚ
isinstanceÚfloatr   ÚtupleÚpointÚconvert)rP   rg   ÚextremaÚminimumÚmaximumrl   rm   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   rz   é   )Úpalette)Ú r{   Ú
PhotoImagery   )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   )rf   )rg   r   r   rh   )r   r|   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrU   ÚpropertyrZ   r^   r`   re   ry   r   r€   r{   r‚   rk   r'   r   r5   r5   `   sñ   € € € € € Ø€FØ*ÐØ(-Ð%ð9ð 9ð 9ð 9ðv ðð ð ñ „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-   rq   r5   ry   Ú	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˜   rh   úlist[bytes]c                óì  — | j         \  }}|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<   i   r   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   r   rr   r•   )r˜   ÚnsamÚnrowr%   r#   r$   ÚnvaluesÚhdrs           r   ÚmakeSpiderHeaderr¦   ï   s  € Ø”�J€Dˆ$Ø�A‰X€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           
     óN  — | j         d         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>   r~   zError creating Spider headerzF;32NFr?   r@   )
Úmoderu   r¦   rŽ   ÚOSErrorÚ
writelinesr
   Ú_saverL   rM   )r˜   r1   r(   r¥   rR   rJ   s         r   r­   r­     sœ   € Ø	„wˆq„z�SÒÐØ�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         }t          |t          ¦  «        r|                     ¦   «         n|}t          j        t          j	        |¦  «         t          | ||¦  «         d S r]   )r�   r�   Úsplitextrq   ÚbytesÚdecoder	   Úregister_extensionr5   r†   r­   )r˜   r1   r(   Úfilename_extÚexts        r   Ú_save_spiderrµ     so   € å”7×#Ò# HÑ-Ô-¨aÔ0€LÝ#-¨l½EÑ#BÔ#BÐ
Tˆ,×
Ò
Ñ
Ô
Ð
È€CÝ	Ô�_Ô3°SÑ9Ô9Ð9Ý	ˆ"ˆ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˜   rh   r   r›   )r˜   rh   r1   r§   r(   r¨   r   r7   )+Ú
__future__r   r�   r/   ÚsysÚtypingr   r   r   r   r€   r	   r
   r   r    r&   r3   r5   rš   r¦   r­   rµ   Úregister_openr†   Úregister_saverƒ   rŽ   Úargvr’   Úexitr(   r-   r˜   rM   rª   rp   ÚoutfileÚ	transposeÚ	TransposeÚFLIP_LEFT_RIGHTr�   ÚbasenameÚsaverk   r'   r   ú<module>rÆ      s£  ððF #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø 
€
€
€
Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à Ð Ð Ð Ð Ð Ð Ð ðð ð ð ð 
$Ð	#Ð	#€ðð ð ð ð(ð ð ð ðlDð lDð lDð lDð lD�iÔ)ñ lDô lDð lDðhð ð ð ð ð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Ñ	Ô	ð 5 Øˆˆn˜ˆnˆnÑÔÐØˆÐ$˜œÐ$Ð$Ñ%Ô%Ð%ØˆÐ �r”wÐ Ð Ñ!Ô!Ð!ØˆÐ �r”wÐ Ð Ñ!Ô!Ð!Øˆˆl Ð$Ñ$Ô$Ð$Øˆˆb�mŠm‰oŒoÑÔÐàˆ3ˆsŒx‰=Œ=˜1ÒÐØ”h˜q”kˆGð —’˜eœoÔ=Ñ>Ô>ˆBØˆEð!¨r¬w×/?Ò/?ÀÑ/IÔ/Ið !ð !Øð!ð !ð !ñô ð ð �GŠG�G˜_Ô3Ñ4Ô4Ð4ð#5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5ð Ðs   Ã>C7HÈHÈ	H