
    th1                         d dl Z ddlmZmZ ddlmZ ddddd	d
ddZd Z G d dej                  Z	 ej
        e	j        e	e            ej        e	j        d           dS )    N   )Image	ImageFile)i32le)AL)r   r   )RGBALA)RGBzYCC;P)r	   zYCCA;P)r   r   )r	   r	   ))i  )i   )i  i )i   i  i  )i  i i i )i   i  i  )i  i i i c                 2    | d d         t           j        k    S )N   )olefileMAGIC)prefixs    f/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/site-packages/PIL/FpxImagePlugin.py_acceptr   *   s    "1":&&    c                   L     e Zd ZdZdZd ZddZddZd Z fd	Z	 fd
Z
 xZS )FpxImageFileFPXFlashPixc                    	 t          j        | j                  | _        n$# t          $ r}d}t          |          |d }~ww xY w| j        j        j        dk    rd}t          |          |                     d           d S )Nz!not an FPX file; invalid OLE filez$56616700-C154-11CE-8553-00AA00A1F95Bznot an FPX file; bad root CLSIDr   )	r   	OleFileIOfpoleOSErrorSyntaxErrorrootclsid_open_index)selfemsgs      r   _openzFpxImageFile._open6   s    
	*(11DHH 	* 	* 	*5Cc"")	* 8="HHH3Cc"""s   ! 
A=Ar   c           	         | j                             d|ddg          }|d         |d         f| _        t          | j                  }d}|dk    r|dz  }|dz  }|dk    |dz
  | _        | j        d	z  }|d
|z           }g }t          |d          }|dk    rd}	t          |	          t          |          D ].}|	                    t          |d|dz  z             dz             /t          t          |                   \  | _        | _        i | _        t          d          D ]}d|d	z  z  }||v r||         | j        |<   |                     d| j                   d S )NData Object Store 06dzImage Contentsi  i  r   @         i     zInvalid number of bandsr   i   i  )r   getproperties_sizemaxsizemaxidi32r   rangeappendMODEStuplemoderawmodejpeg_open_subimage)
r!   indexpropr0   iidscolorsbandsr#   s
             r   r    zFpxImageFile._open_indexG   s    x%%-%---/CD
 
 )_d9o5
49~~Rii!8DFA Rii U
 Z2R Aq		199+C#,,u 	: 	:AMM#aQU++j89999"'f"6	4< 	s 	( 	(Aa2g&BTzz#Bx	!Atz*****r   r   c           
      v   d|dd|ddg}| j                             |          }|                    d           |                    d          }t          |d          t          |d	          f}t          |d
          t          |d          f}t          |d          }t          |d          }	|| j        k    rd}
t          |
          |                    d|z              |                    t          |d          |	z            }dx}}|\  }}|\  }}g | _        t          dt          |          |	          D ]j}t          |||z             }t          |||z             }t          ||d	z             }|dk    r:| j                            d||||ft          ||          dz   | j        ff           n|dk    rC| j                            d||||ft          ||          dz   | j        |dd
         ff           n|dk    rt|d         }|d         }| j        }|r|dk    rd\  }}nd }n|}| j                            d||||ft          ||          dz   ||ff           |r| j        |         | _        nd}
t          |
          ||z   }||k    rd||z   }}||k    r nl|| _        d | _        d S )Nr&   r'   zResolution 04dzSubimage 0000 Header   $   r+   r   r*          zsubimage mismatch   r   rawr   fillr)         r	   )YCbCrKCMYKr9   zunknown/invalid compression)r   
openstreamreadr2   r0   r   seektiler3   lenminr4   r8   r9   tile_prefixstreamr   )r!   r;   subimagerV   r   r?   r0   tilesizeoffsetlengthr#   xyxsizeysizextileytiler=   x1y1compressioninternal_color_conversionjpeg_tablesr8   jpegmodes                            r   r:   zFpxImageFile._open_subimagex   s;   
 -,,,((((("
 X  (( 	 GGBKK1ayy#a))#q"::s1bzz)QQ49%C#,, 	VGGC2JJ'((	Auu	q#a&&&)) E	 E	AUAI&&BUAI&&BaQ--Ka	  Ar2Aq		B	    !!	  Ar2Aq		BqBx0	    !!,-bE)e,, '&(( -=)''#'  'H	  Ar2Aq		B (+	    >'+y'=D$ 4cll"E	AEzz!e)1::Er   c                     | j         s0| j                            | j        d d         dgz             | _         t          j                            |           S )Nr)   zSubimage 0000 Data)r   r   rO   rV   r   load)r!   s    r   rh   zFpxImageFile.load   sN    w 	Th))$+bqb/=Q<R*RSSDG"''---r   c                 z    | j                                          t                                                       d S N)r   closesuper)r!   	__class__s    r   rk   zFpxImageFile.close   s*    r   c                 z    | j                                          t                                                       d S rj   )r   rk   rl   __exit__)r!   argsrm   s     r   ro   zFpxImageFile.__exit__   s1    r   )r   )r   r   )__name__
__module____qualname__formatformat_descriptionr$   r    r:   rh   rk   ro   __classcell__)rm   s   @r   r   r   2   s        F#  "/+ /+ /+ /+bn n n n`. . .            r   r   z.fpx)r    r   r   _binaryr   r2   r5   r   r   register_openrt   register_extension r   r   <module>r|      s   "          ! ! ! ! ! !
 ,*:6H*86F	 	&' ' 'B B B B B9& B B BR  L'w ? ? ?  ,f 5 5 5 5 5r   