
    i,                       S SK Jr  S SKJr  S SKJr  SSKJrJr  SSK	J
r  SSK	Jr  SS	S
.rSS jr " S S\R                  5      r\R"                  " \R$                  \5        \R&                  " \R$                  S5            SS jrg)    )annotations)BytesIO)cast   )Image	ImageFile)i16be)i32berawjpeg)r      c                $    [        SU -   SS  5      $ )Ns       )i32)cs    [/var/www/html/qgis-automation/mouza_env/lib/python3.13/site-packages/PIL/IptcImagePlugin.py_ir   !   s    a%&&    c                  D    \ rS rSrSrSrS
S jrSS jrSS jrSS jr	Sr
g	)IptcImageFile*   IPTCzIPTC/NAAc                2    [        U R                  U   5      $ )N)r   info)selfkeys     r   getintIptcImageFile.getint.   s    $))C.!!r   c                |   U R                   R                  S5      nUR                  S5      (       d  gUS   US   4nUS   S:w  d	  US   S;  a  S	n[        U5      eUS
   nUS:  a  Sn[	        U5      eUS:X  a  SnX$4$ US:  a*  [        U R                   R                  US-
  5      5      nX$4$ [        US
5      nX$4$ )Nr       )Nr   r      r      )
r   r!         r            	      zinvalid IPTC/NAA filer#      z%illegal field length in IPTC/NAA file   )fpreadstripSyntaxErrorOSErrorr   i16)r   stagmsgsizes        r   fieldIptcImageFile.field1   s     GGLLOwwwdAaDj Q44<3q6)II)Cc"" t#:9C#,S[D y CZdggll4#:./D y q!9Dyr   c                    U R                   R                  5       nU R                  5       u  p#U(       a  US:X  a  OU(       a  U R                   R                  U5      nOS nX R                  ;   a`  [        U R                  U   [        5      (       a  U R                  U   R                  U5        O-U R                  U   U/U R                  U'   OX@R                  U'   M  U R                  S   S   nU R                  S   S   nUS:X  a  U(       d
  SU l        S nOQUS:X  a  U(       a  SU l        OUS:X  a  U(       a  S	U l        S
U R                  ;   a  U R                  S
   S   S-
  nOSnU R                  S5      U R                  S5      4U l
         [        U R                  S5         nUS:X  a.  [        R                  " SSU R                   -   XU45      /U l        g g ! [         a  n	Sn
[        U
5      U	eS n	A	ff = f)Nr'   
   )r#   <   r   r   Lr#   RGBr$   CMYK)r#   A   )r#      )r#      )r#   x   zUnknown IPTC image compressioniptc)r   r   )r,   tellr6   r-   r   
isinstancelistappend_moder   _sizeCOMPRESSIONKeyErrorr0   r   _Tiler5   tile)r   offsetr3   r5   tagdatalayers	componentbandcompressioner4   s              r   _openIptcImageFile._openM   s   WW\\^F

IC#.'',,t,iidiind33IIcN))'2&*iing%>DIIcN!(		# $ 7#A&IIg&q)	Q;yDJD{y"
1#
$))#yy)!,q0 [[)4;;w+??
	&%dkk(&;<K '>(:FRVDWXDI   	&2C#,A%	&s   G! !
G>+G99G>c                    U R                   (       Ga  U R                   S   R                  n[        U[        5      (       d   eUu  p#U R                  R                  U R                   S   R                  5        [        5       nUS:X  a  UR                  SU R                  -  5         U R                  5       u  pVUS:w  a  O\US:  aT  U R                  R                  [        US5      5      nU(       d  O'UR                  U5        U[        U5      -  nUS:  a  MT  Mu  [        R                  " U5       nUbi  [        R                   " SUR                  5      /[        R"                  " U R$                  5      -  n	XU'   [        R&                  " U R$                  U	5      nOUR)                  5         UR*                  U l        S S S 5        / U l         [,        R,                  R)                  U 5      $ ! , (       d  f       N4= f)Nr   r   s   P5
%d %d
255
r9   i    r<   )rM   argsrE   tupler,   seekrN   r   writer5   r6   r-   minlenr   opennewgetmodebandsmodemergeloadimr   )
r   rX   rS   rR   otyper5   r2   _imbandss
             r   rc   IptcImageFile.load   s   99999Q<$$DdE**** $KGGLL1,,- 	Ae# +dii78!ZZ\
7?QhSt_5AGGAJCFND Qh	  A##"YYsCHH569K9KDII9VVE"%$K++dii7CHHJ&&  DI""''-- s   3BG//
G=)rH   rI   rd   rM   N)r   ztuple[int, int]returnint)rj   z"tuple[tuple[int, int] | None, int])rj   None)rj   zImage.core.PixelAccess | None)__name__
__module____qualname____firstlineno__formatformat_descriptionr   r6   rU   rc   __static_attributes__ r   r   r   r   *   s"    F#"81f".r   r   z.iimc                X   SSK JnJn  Sn0 n[        U [        5      (       a@  U R
                  R                  5        H   u  pV[        U[        5      (       d  M  XdU'   M"     U$ [        XR                  5      (       a4  U R
                  R                  S5      nU(       a  UR                  S5      nO>[        XR                  5      (       a$   U R                  R                  UR                     nUc  g " S S5      nU" 5       n	[        U	l        [!        [        U	5      n
0 U
l        [#        U5      U
l         U
R'                  5         U
R
                  R                  5        H   u  pV[        U[        5      (       d  M  XdU'   M"     U$ ! [         a     Nf = f! [(        [        4 a     Nbf = f)z
Get IPTC information from TIFF, JPEG, or IPTC file.

:param im: An image containing IPTC data.
:returns: A dictionary containing IPTC information, or None if
    no IPTC information block was found.
r   )JpegImagePluginTiffImagePluginN	photoshopi  c                      \ rS rSrSrg)getiptcinfo.<locals>.FakeImage   rt   N)rm   rn   ro   rp   rs   rt   r   r   	FakeImagerz      s    r   r|   ) rv   rw   rE   r   r   itemsrY   JpegImageFilegetTiffImageFiletag_v2_tagdataIPTC_NAA_CHUNKrK   	__class__r   r   r,   rU   
IndexError)rd   rv   rw   datar   kvrx   r|   fake_imiptc_ims              r   getiptcinfor      si    3D79D"m$$GGMMODA!U##Q $ 	B55	6	6GGKK,	==(D	B55	6	6	99%%o&D&DED |  kG%G='*G GLGJ ""$aG % K5  		( ! s$   #F 6F 
FFF)(F)N)r   bytesrj   rk   )rd   zImageFile.ImageFilerj   z1dict[tuple[int, int], bytes | list[bytes]] | None)
__future__r   ior   typingr   r}   r   r   _binaryr	   r1   r
   r   rJ   r   r   register_openrq   register_extensionr   rt   r   r   <module>r      s   " #    ! !F#'x.I'' x.v   M((- 8   --v 6;;6;r   