
     f                        d dl mZ 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dZ
 G d dej                  Z ej        ej        ee
            ej        ej        d           dS )    )annotationsN   )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 prefixbytesreturnboolc                2    | d d         t           j        k    S )N   )olefileMAGIC)r   s    U/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/PIL/FpxImagePlugin.py_acceptr   ,   s    "1":&&    c                  T     e Zd ZdZdZd Zddd	ZdddZd Zd fdZ	d 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._open8   s    
	*(11DHH 	* 	* 	*5Cc"")	* 8="HHH3Cc"""s   ! 
A=Ar   indexintr   Nonec                z  	 | 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           	t          	d          }|dk    rd}t          |          t          	fdt          |          D                       }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 bandsc              3  J   K   | ]}t          d |dz  z             dz  V  dS )r   r2   iN)i32).0iss     r   	<genexpr>z+FpxImageFile._open_index.<locals>.<genexpr>l   s:      LL!s1a!a%i((:5LLLLLLr      i  )r   getproperties_sizemaxsizemaxidr4   r    tuplerangeMODES_moderawmodejpeg_open_subimage)
r%   r)   propr=   r6   idbandsr'   colorsr7   s
            @r   r$   zFpxImageFile._open_indexI   sm    x%%-%---/CD
 
 )_d9o5
49~~Rii19DFA Rii U
 Z2R Aq		199+C#,, LLLLuU||LLLLL#(= 
DL 	s 	( 	(Aa2g&BTzz#Bx	!Atz*****r   r   subimagec           
        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|| _        | j        | _        d | _        d S )Nr-   r.   zResolution 04dzSubimage 0000 Header   $   r2   r   r1          zsubimage mismatch   r   rawr   fillr0         r
   )YCbCrKCMYKrD   zunknown/invalid compression)r   
openstreamreadr4   r=   r    seektiler@   lenminappendrC   rD   tile_prefixstreamr   _fp)r%   r)   rJ   r`   r   r7   r=   tilesizeoffsetlengthr'   xyxsizeysizextileytiler6   x1y1compressioninternal_color_conversionjpeg_tablesrC   jpegmodes                            r   rE   zFpxImageFile._open_subimagey   sD   
 -,,,((((("
 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7r   c                    | j         s0| j                            | j        d d         dgz             | _         t          j                            |           S )Nr0   zSubimage 0000 Data)r   r   rX   r`   r   load)r%   s    r   rr   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   ru   zFpxImageFile.close   s*    r   argsobjectc                z    | j                                          t                                                       d S rt   )r   ru   rv   __exit__)r%   rx   rw   s     r   r{   zFpxImageFile.__exit__   s1    r   )r   )r)   r*   r   r+   )r   r   )r)   r*   rJ   r*   r   r+   )r   r+   )rx   ry   r   r+   )__name__
__module____qualname__formatformat_descriptionr(   r$   rE   rr   ru   r{   __classcell__)rw   s   @r   r   r   4   s        F#  ".+ .+ .+ .+ .+`o o o o ob. . .              r   r   z.fpx)r   r   r   r   )
__future__r   r    r   r   _binaryr   r4   rA   r   r   register_openr   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   