§
    yØj6(  ã                  ó6  — d dl mZ ddhZd dlZd dlZd dlZddlmZmZ ddl	m
Z
 dZerd d	lmZmZ d3d„Zg d¢Zd4d„Zd5d„Z G d„ dej        ¦  «        Zd6d7d„Zd8d„Zd9d$„Zd9d%„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/¬0¦  «          ee" %                    ¦   «         ¦  «          eej        ¦  «        d'k    rqej        d'         Z&e" '                    ej(        j)        ¦  «        Z* ed1ej+         ,                    e ¦  «        › d2e&› d/�¦  «         e* -                    e&ej        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS dS ):é    )Úannotationsz	PIL._utilÚstructNé   )ÚImageÚ	ImageFile)ÚDeferredErrorF)ÚIOÚAnyÚ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     úŠ/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/PIL/SpiderImagePlugin.pyÚisIntr   3   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&   G   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Úreadr   Úunpackr&   )r(   Úfpr   r   Úhdrlens        r   ÚisSpiderImager2   [   s½   € Ý	ˆh˜Ñ	Ô	ð  Ø�GŠG�B‰KŒKˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åŒ�f˜aÑ Ô €AÝ˜AÑÔ€FØ�‚{€{ÝŒM˜& !Ñ$Ô$ˆÝ Ñ"Ô"ˆØ€Ms   ‘3³7º7c                  óT   — e Zd ZdZdZdZ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         ¦  «        | _        d| _        | j
        dk    r| j        dk    r|}	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        dk    | _        | j        rd| _        nd| _        d| _        t'          j        dddg| j        ¢R |	| 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)r0   r.   Ú	bigendianr   r/   r&   ÚSyntaxErrorÚerrorr   Ú_sizeÚistackÚ	imgnumberÚn_framesÚimgbytesr1   Ú	stkoffsetÚis_animatedÚrawmodeÚ_moder   Ú_TileÚsizeÚtileÚ_fp)
ÚselfÚnr   r   r1   ÚmsgÚer!   r"   Úoffsets
             r   Ú_openzSpiderImageFile._openk   s…  € àˆØŒ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ˆFØŒ[˜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Ñ"Ô"Ð"Øœ=¨1Ò,ˆÔàŒ>ð 	#Ø#ˆDŒLˆLà"ˆDŒLØˆŒ
å”_ U¨Q°Ð,>°D´IÐ,>Ð,>ÀÈÌÑUÔUÐVˆŒ	Ø”7ˆŒˆˆs   §A3B ÂCÂ*B<Â<Cr   c                ó0   — | j         dk     rdS | j         dz
  S )Nr   r   )rD   )rO   s    r   ÚtellzSpiderImageFile.tell©   s!   € ØŒ>˜AÒÐØ�1à”> AÑ%Ð%r'   Úframec                ó¦  — | j         dk    rd}t          |¦  «        ‚|                      |¦  «        sd S t          | j        t
          ¦  «        r| j        j        ‚| j        || j        | j        z   z  z   | _	        | j        | _
        | j
                             | j	        ¦  «         |                      ¦   «          t          j        | j        ¦  «         d S )Nr   z#attempt to seek in a non-stack file)rC   ÚEOFErrorÚ_seek_checkÚ
isinstancerN   r   Úexr1   rF   rG   r0   ÚseekrT   r   Ú_decompression_bomb_checkrL   )rO   rW   rQ   s      r   r]   zSpiderImageFile.seek¯   sº   € ØŒ;˜!ÒÐØ7ˆCÝ˜3‘-”-ÐØ×Ò Ñ&Ô&ð 	ØˆFÝ�d”h¥Ñ.Ô.ð 	Ø”(”+ÐØœ u°´¸d¼mÑ0KÑ'LÑLˆŒØ”(ˆŒØŒ�Š�T”^Ñ$Ô$Ð$Ø�
Š
‰ŒˆÝÔ'¨¬	Ñ2Ô2Ð2Ð2Ð2r'   éÿ   ÚdepthúImage.Imagec                óö   ‡‡— |                       ¦   «         }t          |d         t          ¦  «        sJ ‚|\  }}dŠ||k    r|||z
  z  Š‰ |z  Š|                      ˆˆfd„¦  «                             d¦  «        S )Nr   r   c                ó   •— | ‰z  ‰z   S ©N© )r   ÚbÚms    €€r   ú<lambda>z.SpiderImageFile.convert2byte.<locals>.<lambda>Æ   s   ø€  A¨¡E¨A¡I€ r'   ÚL)Ú
getextremar[   ÚfloatÚpointÚconvert)rO   r`   ÚextremaÚminimumÚmaximumrf   rg   s        @@r   Úconvert2bytezSpiderImageFile.convert2byte¾   sŽ   øø€ Ø—/’/Ñ#Ô#ˆÝ˜' !œ*¥eÑ,Ô,Ð,Ð,Ð,Ø"Ñˆ�ØˆØ�gÒÐØ˜ 7Ñ*Ñ+ˆAØˆB�‰LˆØ�zŠzÐ-Ð-Ð-Ð-Ð-Ñ.Ô.×6Ò6°sÑ;Ô;Ð;r'   r   ©ÚImageTkúImageTk.PhotoImagec                ó`   — ddl m} |                     |                      ¦   «         d¬¦  «        S )Nr   rr   é   )Úpalette)Ú rs   Ú
PhotoImagerq   )rO   rs   s     r   ÚtkPhotoImagezSpiderImageFile.tkPhotoImageÌ   s9   € ØÐÐÐÐÐà×!Ò! $×"3Ò"3Ñ"5Ô"5¸sÐ!ÑCÔCÐCr'   N)r   r6   )r   r   )rW   r   r   r6   )r_   )r`   r   r   ra   )r   rt   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrT   rV   r]   rq   ÚTYPE_CHECKINGrx   rs   rz   re   r'   r   r4   r4   f   s±   € € € € € Ø€FØ*ÐØ(-Ð%ð;ð ;ð ;ð ;ð|&ð &ð &ð &ð3ð 3ð 3ð 3ð<ð <ð <ð <ð <ð ð ØÐÐÐÐÐðDð Dð Dð Dð Dð Dr'   r4   Ú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-   r[   r4   rq   Ú	Exceptionr2   Ú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�   ra   ú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'   )rL   Úmaxr   rk   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'   r0   ú	IO[bytes]ústr | bytesr6   c           
     óF  — | j         dk    r|                      d¦  «        } t          | ¦  «        }t          |¦  «        dk     rd}t	          |¦  «        ‚|                     |¦  «         d}t          j        | |t          j        dddg| j	        ¢R d|¦  «        g¦  «         d S )Nr=   rv   zError creating Spider headerzF;32NFr>   r   )
Úmoderm   rŸ   r†   ÚOSErrorÚ
writelinesr   Ú_saverK   rL   )r�   r0   r(   rž   rQ   rI   s         r   r¦   r¦     sž   € Ø	„w�#‚~€~Ø�ZŠZ˜‰_Œ_ˆå
˜2Ñ
Ô
€CÝ
ˆ3�x„x�#‚~€~Ø,ˆÝ�c‰lŒlÐð ‡M‚M�#ÑÔÐà€GÝ„O�B˜�Yœ_¨U°Q¸Ð4D¸B¼GÐ4DÐ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 )Nr   )r‡   rˆ   Úsplitextr[   ÚbytesÚdecoder   Úregister_extensionr4   r~   r¦   )r�   r0   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   rd   )r‚   rƒ   r   r„   )r�   ra   r   r“   )r�   ra   r0   r    r(   r¡   r   r6   ).Ú
__future__r   Ú__lazy_modules__r‡   r   Úsysrx   r   r   Ú_utilr   r�   Útypingr	   r
   r   r    r&   r2   r4   r’   rŸ   r¦   r®   Úregister_openr~   Úregister_saver{   r†   ÚargvrŠ   Úexitr(   r-   r�   rL   r£   rj   ÚoutfileÚ	transposeÚ	TransposeÚFLIP_LEFT_RIGHTÚtransposed_imrˆ   ÚbasenameÚsavere   r'   r   ú<module>rÂ      sÖ  ððF #Ð "Ð "Ð "Ð "Ð "à Ð*Ð à 	€	€	€	Ø €€€Ø 
€
€
€
à Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à€Øð ØÐÐÐÐÐÐÐðð ð ð ð 
$Ð	#Ð	#€ðð ð ð ð(ð ð ð ðiDð iDð iDð iDð iD�iÔ)ñ iDô iDð iDðbð ð ð ð ð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