
     fa               
      N   d dl mZ d dlZd dlmZ ddlmZmZmZ ddl	m
Z
 ddl	mZ ddl	mZ dd	l	mZ dd
l	mZ dddddddddd	ZddZ G d dej                  Zd Zd Z ej        ej        ee            ej        ej        d            ej        ej        d           dS )    )annotationsN)cached_property   )Image	ImageFileImagePalette)i8)i16be)i32be)si16be)si32be)1r   )Lr   )Pr   )RGB   )CMYK   )LABr   )	)r   r   )r      )r   r   )   r   )r   r   )r   r   )   r   )r   r   )	   r   prefixbytesreturnboolc                    | d d         dk    S )Nr   s   8BPS )r   s    U/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/PIL/PsdImagePlugin.py_acceptr!   0   s    "1":      c                  x    e Zd ZdZdZdZddZed             Ze	dd	            Z
e	dd            ZddZddZdS )PsdImageFilePSDzAdobe PhotoshopFr   Nonec                   | j         j        } |d          }t          |          rt          |d          dk    rd}t	          |          t          |d          }t          |d          }t          |d          }t
          ||f         \  }}||k    rd}t          |          |d	k    r
|dk    rd
}d}|| _        t          |d          t          |d          f| _	        t           |d                    }	|	r1 ||	          }
|dk    r |	dk    rt          j        d|
          | _        g | _        t           |d                    }	|	r"| j                                         |	z   }| j                                         |k     r |d           t           |d                    } |t           |d                              }t!          |          dz  s |d            |t           |d                              }
t!          |
          dz  r |d           | j                            |||
f           |dk    r
|
| j        d<   | j                                         |k     d | _        t           |d                    }	|	ru| j                                         |	z   }t           |d                    }	|	r%| j                                         | _        |	| _        | j                             |           d | _        t/          | j         |d| j        z   |          | _        | j         | _        d| _        d| _        d S )N   r   r   znot a PSD file         znot enough channelsr   RGBA      r   i   zRGB;Lr   i  icc_profile)r   r   )fpreadr!   i16SyntaxErrorMODESOSError_modei32_sizer   rawpalette	resourcestellr	   lenappendinfo_layers_position_layers_sizeseek	_n_frames	_maketilesizetile_fpframe
_min_frame)selfr1   smsgpsd_bitspsd_channelspsd_modemodechannelsrE   dataendidnames                 r    _openzPsdImageFile._open=   s$   w|
 DHHqzz 	#SAYY!^^"Cc"""q"::1bzzq"::(34hl""'C#,,5==\Q..DH
BZZQ+

 4477|| 	?4::Ds{{ts{{+/>>
 4477|| 	4',,..4'C',,..3&&Qa\\tBttAwwKK((D		A DGGGtCQLL))t99q= DGGG%%r4&6777::/3DIm, ',,..3&&  !%4477|| 	',,..4'CttAww<<D )(,%$(!GLL%)
 dgtVdi-?JJ	 7
r"   c                
   g }| j         e| j                            | j                    t          j        t          j        | j        | j                            }t          || j                  }t          |          | _
        |S N)r@   rG   rB   ioBytesIOr   
_safe_readrA   
_layerinfor=   rC   )rJ   layers_layer_datas      r    r]   zPsdImageFile.layers   sl     ,HMM$/000*Y%9$(DDU%V%VWWKT->??FVr"   intc                P    | j         t          | j                  | _         | j         S rX   )rC   r=   r]   rJ   s    r    n_frameszPsdImageFile.n_frames   s#    >! --DN~r"   r   c                2    t          | j                  dk    S )Nr   )r=   r]   ra   s    r    is_animatedzPsdImageFile.is_animated   s    4;!##r"   layerc                    |                      |          sd S 	 | j        |dz
           \  }}}}|| _        || _        || _        | j        | _        d S # t          $ r}d}t          |          |d }~ww xY w)Nr   zno such layer)	_seek_checkr]   r6   rF   rH   rG   r0   
IndexErrorEOFError)rJ   re   _rP   rF   erL   s          r    rB   zPsdImageFile.seek   s    && 	F	'#{5195AtQDJDIDJhDGGG 	' 	' 	'!C3--Q&	's   6A 
A2A--A2c                    | j         S rX   )rH   ra   s    r    r<   zPsdImageFile.tell   s
    zr"   N)r   r&   )r   r_   )r   r   )re   r_   r   r&   )__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingrV   r   r]   propertyrb   rd   rB   r<   r   r"   r    r$   r$   8   s        F*(-%Q Q Q Qf   _    X
 $ $ $ X$' ' ' '     r"   r$   c           	         g } fd}t           |d                    }|t          |          dz  k     rd}t          |          t          t          |                    D ]}t	           |d                    }t	           |d                    }t	           |d                    }	t	           |d                    }
g }t           |d                    }|dk    r_                     |dz  dz   t          j                   t           |d                    }                     |t          j                   t          |          D ]K}t           |d                    }|dk    rd	}nd
|         }|
                    |            |d           L|                                 |dgk    rd}n|g dk    rd}n|g dk    rd
}nd } |d           d}t           |d                    }|r܉                                 |z   }t           |d                    }|r#                     |dz
  t          j                   t           |d                    }|r                      |t          j                   t           |d                    }|r ||                              dd          }                     |           |
                    |||||
|	ff           t          |          D ]B\  }\  }}}g }|D ]+}t!           ||d          }|r|                    |           ,||||f||<   C|S )Nc                .    t          j        |           S rX   )r   r[   )rE   r0   s    r    r1   z_layerinfo.<locals>.read   s    #B---r"   r      z4Layer block too short for number of layers requestedr      r*   i  Ar,   Rr   )BGry   r   )rx   rz   r{   ry       r   zlatin-1replace)si16absr3   rangesi32r2   rB   rY   SEEK_CURr7   r>   sortr<   r	   decode	enumeraterD   extend)r0   ct_bytesr]   r1   ctrL   rj   y0x0y1x1rP   ct_typesrE   typemrU   data_endlengthibboxrF   ts   `                      r    r\   r\      s   F. . . . . 
dd1ggB 3r77R<  D#3r77^^ <6 <6$$q'']]$$q'']]$$q'']]$$q'']] ttAww<<a<<GGHqL2%r{333ttAww<<DGGD"+&&&x 		 		AttAww<<Du}}4LKKNNNDGGGG 			C5==DD___$$DD)))))DDD 	R4477|| 	wwyy4'Ha\\F 2R[111a\\F -,,,Q[[F A tF||**9i@@GGHtTBB#345555 "+6!2!2 + +D$ 	 	A"aq))A A$d*q		Mr"   c                   d }| j         }t           |d                    }|d         |d         z
  }|d         |d         z
  }|                                 }	|dk    rIg }t          |          D ]6}
||
         }|dk    r|dz  }|                    d||	|f           |	||z  z   }	7n|dk    rd}g } |||z  dz            }|                                 }	t          |          D ]X}
||
         }|dk    r|dz  }|                    d||	|f           t          |          D ]}|	t          ||          z   }	|dz  }Y|                     |	           |	dz  r |d           |S )	Nr   r   r   r   r   z;Ir9   packbits)r1   r2   r<   r   r>   rB   )filerP   r   rQ   rF   r1   compressionxsizeysizeoffsetchannelre   r   	bytecountys                  r    rD   rD     s   D9Ddd1gg,,KGd1gEGd1gEYY[[Fa X 	, 	,GMEv~~KKfe4555eem+FF	, 
		 DE)A-..	X 	 	GMEv~~KKT659:::5\\  #i"3"33Q 	IIfz QKr"   z.psdzimage/vnd.adobe.photoshop)r   r   r   r   )
__future__r   rY   	functoolsr   r|   r   r   r   _binaryr	   r
   r2   r   r7   r   r   r   r   r4   r!   r$   r\   rD   register_openrp   register_extensionregister_mimer   r"   r    <module>r      s  $ # " " " " " 				 % % % % % % , , , , , , , , , ,       ! ! ! ! ! ! ! ! ! ! ! ! # # # # # # # # # # # # 	 	$! ! ! !} } } } }9& } } }@U U Up+ + +d  L'w ? ? ?  ,f 5 5 5  L')D E E E E Er"   