
    zvgx                        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    O/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/PIL/FpxImagePlugin.py_acceptr   ,   s    "1":&&    c                  X     e Zd ZdZdZddZddd	ZdddZddZd fdZ	d fdZ
 xZS )FpxImageFileFPXFlashPixr   Nonec                   	 t          j        | j                  | _        n$# t          $ r}d}t          |          |d }~ww xY w| j        j        }|r|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msgr#   s       r   _openzFpxImageFile._open8   s    
	*(11DHH 	* 	* 	*5Cc"")	* x} 	#tz%KKK3Cc"""s   ! 
A=Ar   indexintc                  	 | j                             d|ddg          }t          |d         t                    sJ t          |d         t                    sJ |d         |d         f| _        t          | j                  }d}|dk    r|dz  }|dz  }|dk    |dz
  | _        | j        d	z  }|d
|z           	t          	t                    rt          	d          x}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>n   s:      LL!s1a!a%i((:5LLLLLLr      i  )r    getproperties
isinstancer+   _sizemaxsizemaxidr   r4   r!   tuplerangeMODES_moderawmodejpeg_open_subimage)
r&   r*   propr>   r6   idbandsr(   colorsr7   s
            @r   r%   zFpxImageFile._open_indexJ   s    x%%-%---/CD
 
 $y/3/////$y/3/////)_d9o5
49~~Rii19DFA Rii U
 Z2R !U## 	Q(:a'?'?+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 ]}t          |||z             }t          |||z             }t          ||d	z             }|dk    rJ| j                            t          j        d||||ft          ||          dz   | j                             n|dk    rT| j                            t          j        d||||ft          ||          dz   | j        |dd
         f                     n|dk    r|d         }|d         }| j        }|r|dk    rd\  }}nd }n|}| j                            t          j        d||||ft          ||          dz   ||f                     |r| j        |         | _        nd}
t          |
          ||z   }||k    rd||z   }}||k    r n|| _        | j        | _        d | _        d S )Nr-   r.   zResolution 04dzSubimage 0000 Header   $   r2   r   r1          zsubimage mismatch   r   rawr   fillr0         r
   )YCbCrKCMYKrE   zunknown/invalid compression)r    
openstreamreadr4   r>   r!   seektilerA   lenminappendr   _TilerD   rE   tile_prefixstreamr   _fp)r&   r*   rK   rb   r   r7   r>   tilesizeoffsetlengthr(   xyxsizeysizextileytiler6   x1y1compressioninternal_color_conversionjpeg_tablesrD   jpegmodes                            r   rF   zFpxImageFile._open_subimage{   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	  OAr2Aq		B	     !!	  OAr2Aq		BqBx0	     !!,-bE)e,, '&(( -=)''#'  'H	  OAr2Aq		B (+	     >'+y'=D$ 4cll"E	AEzz!e)1::E7r   Image.core.PixelAccess | Nonec                    | j         s0| j                            | j        d d         dgz             | _         t          j                            |           S )Nr0   zSubimage 0000 Data)r   r    rY   rb   r   load)r&   s    r   ru   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   rx   zFpxImageFile.close   s*    r   argsobjectc                z    | j                                          t                                                       d S rw   )r    rx   ry   __exit__)r&   r{   rz   s     r   r~   zFpxImageFile.__exit__   s1    r   )r   r   )r   )r*   r+   r   r   )r   r   )r*   r+   rK   r+   r   r   )r   rs   )r{   r|   r   r   )__name__
__module____qualname__formatformat_descriptionr)   r%   rF   ru   rx   r~   __classcell__)rz   s   @r   r   r   4   s        F#   $/+ /+ /+ /+ /+bo o o o ob. . . .              r   r   z.fpx)r   r   r   r   )
__future__r   r    r   r   _binaryr   r4   rB   r   r   register_openr   register_extension r   r   <module>r      s   " # " " " " "          ! ! ! ! ! !
 ,*:6H*86F	 	&' ' ' 'D D D D D9& D D DV  L'w ? ? ?  ,f 5 5 5 5 5r   