
    th$                     8   d dl Z d dlZd dlZddlmZmZ d Zg dZd Zd Z	 G d d	ej                  Z
dd
Zd Zd Zd 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          z               ed eej                  z               ed eej                  z               ed eej                  z               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 )    N   )Image	ImageFilec                 l    	 t          |           }| |z
  dk    rdS dS # t          t          f$ r Y dS w xY w)Nr   r   )int
ValueErrorOverflowError)fis     i/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/site-packages/PIL/SpiderImagePlugin.pyisIntr   *   sP    FFq5A::11&   qqs    33)r      iiiic                    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)thr   iformlabreclabbytlenbyts          r   isSpiderHeaderr   >   s    	A&  QqT{{ 	11	 !IIEFq2ZZF2ZZF2ZZF&6/""qM    c                    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   )filenamefpr
   r   hdrlens        r   isSpiderImager+   R   s    	h		 GGBKK              fa  AAF{{M&!$$""Ms   377c                   f    e Zd ZdZdZdZd Zed             Zed             Z	d Z
d Zdd
Zd ZdS )SpiderImageFileSPIDERzSpider 2D imageFc                    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| _        dd| j        z   |	| j        ddffg| _        | j         | _        d S )Nl   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   )r)   r%   	bigendianr&   r'   r   SyntaxErrorerrorr   _sizeistack	imgnumber_nimagesimgbytesr*   	stkoffsetrawmodemodesizetile_fp)
selfnr
   r   r*   msger   r   offsets
             r   _openzSpiderImageFile._openb   s`   GLLOO	*DNfa((A#A&&F{{!"M&!,,'**{{/!#&&&  | 	* 	* 	*+Cc"")	* AIAaD		A::)Cc"""2ZZQqT*
!B%jjQrU;!! 3 3FDMM[1__1!4!4"JJQqT2Q6DM DK"JJDMaZFDNN[A$.1"4"4dn,FDKK4Cc"""> 	##DLL"DL	Vdi/$,19MNO	7s   A3B B8!B33B8c                     | j         S Nr>   rF   s    r   n_frameszSpiderImageFile.n_frames   s
    }r    c                     | j         dk    S Nr   rN   rO   s    r   is_animatedzSpiderImageFile.is_animated   s    }q  r    c                 0    | j         dk     rdS | j         dz
  S )Nr   r   )r=   rO   s    r   tellzSpiderImageFile.tell   s!    >A1>A%%r    c                 (   | 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)
r<   EOFError_seek_checkr*   r?   r@   rE   r)   seekrK   )rF   framerH   s      r   rY   zSpiderImageFile.seek   s    ;!7C3--&& 	Fudm0K'LL(T^$$$

r       c                     |                                  \  }}d}||k    r|||z
  z  }| |z  }|                     ||fd                              d          S )Nr   c                     | |z  |z   S rM    )r   mbs      r   <lambda>z.SpiderImageFile.convert2byte.<locals>.<lambda>   s    a!eai r    L)
getextremapointconvert)rF   depthminimummaximumr_   r`   s         r   convert2bytezSpiderImageFile.convert2byte   sk    !__..'g7*+ABLzza177788@@EEEr    c                 `    ddl m} |                    |                                 d          S )Nr   )ImageTk   )palette) rk   
PhotoImageri   )rF   rk   s     r   tkPhotoImagezSpiderImageFile.tkPhotoImage   s9    !!$"3"3"5"5s!CCCr    N)r[   )__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingrK   propertyrP   rS   rU   rY   ri   rp   r^   r    r   r-   r-   ]   s        F*(-%9 9 9v   X ! ! X!& & &	 	 	F F F FD D D D Dr    r-   c                    | t          |           dk     rdS g }| D ]}t          j                            |          st	          d|            4	 t          j        |          5 }|                                }ddd           n# 1 swxY w Y   n1# t          $ r$ t          |          st	          |dz              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$   ri   	Exceptionr+   infoappend)filelistimglistimgims       r   loadImageSeriesr      sB   3x==1,,G  w~~c"" 	)C))***	C 'B__&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 	 	 	 %% ;c99:::H	 "
rNs6   B%B:BB
	
BB
	B+C ?C c                 2   | j         \  }}|dz  }t          d|z            }d|z  dk    r|dz  }||z  }t          |dz            }|dk     rg S g }t          |          D ]}|                    d           d|d<   t	          |          |d<   t	          |          |d	<   d|d
<   t	          |          |d<   t	          |          |d<   t	          |          |d<   t	          |          |d<   |dd          }|                    d           d |D             S )Nr3   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$    ---AFKQ---r    )rC   r   ranger   float)	r   nsamnrowr   r   r   nvalueshdrr   s	            r   makeSpiderHeaderr      s0   JD$AXFFf}!f_F&1*ooG||	
C7^^  

3 CF4[[CF4[[CFCFDkkCGFmmCGFmmCGFmmCG abb'CJJsOOO------r    c           
      2   | j         d         dk    r|                     d          } t          |           }t          |          dk     rd}t	          |          |                    |           d}t          j        | |dd| j        z   d|ddffg           d S )	Nr   r5   rl   zError creating Spider headerzF;32NFr6   r7   r   )	rB   re   r   ry   OSError
writelinesr   _saverC   )r   r)   r(   r   rH   rA   s         r   r   r     s    	wqzSZZ__
2

C
3xx#~~,cll MM#GOBeVbg%5q7Aq/JKLLLLLr    c                     t           j                            |          d         }t          j        t
          j        |           t          | ||           d S rR   )rz   r{   splitextr   register_extensionr-   rt   r   )r   r)   r(   exts       r   _save_spiderr     sJ    
'

8
$
$Q
'C	_3S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 rM   )%rz   r&   sysrn   r   r   r   r   r   r+   r-   r   r   r   r   register_openrt   register_saverq   ry   argvr}   exitr(   r$   r   strrC   rB   rc   outfile	transpose	TransposeFLIP_LEFT_RIGHTr{   basenamesaver^   r    r   <module>r      s]  F 
			  



           
$	#	#  (  gD gD gD gD gDi) gD gD gD^   4. . .@M M M     O*O < < <  O*L 9 9 9z
s38}}qGHHH


x{H="" 4555


	H		 5i##b''!"""j33ry>>)***hRW%&&&hRW%&&&l$$$$bmmoo3sx==1hqkG eo=>>BE!rw/?/?/I/I ! !! ! !   GGG_3444#5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 s   %DHHH