
    1)i                       d dl mZ d dl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ddddddZ G d dej                        ZdddddddZddZ ej,                  ej.                  e        ej0                  ej.                  e        ej2                  ej.                  g d        ej4                  ej.                  d       y)    )annotationsN)IO   )Image	ImageFileImagePalette)i16le)i32le)o8)o16leP1LLABGRA;15ZBGRBGRA))r      )   r   )r   r   )r      )   r   )r      )r       c                  $    e Zd ZdZdZddZddZy)TgaImageFileTGATargac                n   | j                   J | j                   j                  d      }|d   }|d   }|d   }|d   }|d   }t        |d      t        |d      f| _        |d	vs(| j                  d   dk  s| j                  d   dk  s|d
vrd}t        |      |dv r!d| _        |dk(  rd| _        n=|dk(  r8d| _        n0|dv r|rdnd| _        n |dv r|dk(  rdnd| _        nd}t        |      |dz  }|dv | _        |dv rd}n|dv rd}nd}t        |      || j                  d<   |dz  rd| j                  d <   |r(| j                   j                  |      | j                  d!<   |rt        |d"      t        |d#      |d$   }}
}	|dk(  rXt        j                  d%t        d|	z        | j                   j                  d|
z        z         | _        d| j                  _        n|dk(  rGt        j                  d&t        d"|	z        | j                   j                  d"|
z        z         | _        nY|d'k(  rGt        j                  d(t        d)|	z        | j                   j                  d)|
z        z         | _        nd*}t        |      	 t        |d$z  |f   }|dz  rGt        j                   dd+| j                  z   | j                   j#                         |||f      g| _        y t        j                   d,d+| j                  z   | j                   j#                         |d|f      g| _        y # t&        $ r Y y w xY w)-N   r   r   r   r            )r   r   )r   r   r   r   r   znot a TGA file)r      r   r   r   )r   	   r   )r   
   r   RGBRGBAzunknown TGA mode0   )r   r(   )r   r(   )r   r   zunknown TGA orientationorientationr   tga_rlecompression
id_sectionr         r   r   r   r      zunknown TGA map depthr   r   raw)fpreadi16_sizesizeSyntaxError_mode_flip_horizontallyinfor   r2   bytespalettemodeMODESr   _TiletelltileKeyError)selfsid_lencolormaptype	imagetypedepthflagsmsgr*   startr7   mapdepthrawmodes                V/var/www/html/spbu.com/backend/venv/lib/python3.12/site-packages/PIL/TgaImagePlugin.py_openzTgaImageFile._open7   s<   ww"""GGLL1taD	""BZQ+
 &yy|q yy|q .."Cc"" DJz 
"!
&  ,#DJ'!"'2+6DJ$Cc"" dl"-"=,&KI%K+Cc""#.		- q='0DIIm$&*ggll6&:DIIl#$'1Is1ay!A$4E2~+//a%i 0477<<D3I I  %+!R+//5U+dggll1t8.DD  R+//E!e),tww||AH/EE  .!#&&	Y]E23G1} OO!* +u5		 OO* ![1		  		s   AL( !AL( (	L43L4c                B   | j                   dk(  r| j                  J | j                  j                  dt        j                         | j                  j                  d      }|j                  d      rgt        |      }|rZ| j                  j                  |dz          | j                  j                  d      }|dk(  r| j                  j                  dd	       | j                  r9| j                  j                  t        j                  j                        | _        y y )
Nr'   i   s   TRUEVISION-XFILE. i  r       r      )r>   r3   seekosSEEK_ENDr4   endswithi32imfillbandr:   	transposer   	TransposeFLIP_LEFT_RIGHT)rD   footerextension_offsetattributes_types       rO   load_endzTgaImageFile.load_end   s    9977&&&GGLLbkk*WW\\"%F78#&v; #GGLL!1C!78&*ggll1oO&'1((C0""gg''(G(GHDG #    N)returnNone)__name__
__module____qualname__formatformat_descriptionrP   rb    rc   rO   r   r   3   s    F hTIrc   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r&   r'   c                   	 t         | j                     \  }}}}d| j                  v r| j                  d   }	n:| j                  j                  d| j                  j                  d            }
|
dk(  }	|	r|dz  }| j                  j                  d| j                  j                  dd            }t        |      }|d	kD  rd	}|d d	 }t        j                  d
       |r-| j                  j                  dd      }t        |      dz  d}}nd\  }}| j                  dv rd}nd}| j                  j                  d| j                  j                  dd            }|dkD  r|dz  }|j                  t        |      t        |      z   t        |      z   t        d      z   t        |      z   t        |      z   t        d      z   t        d      z   t        | j                  d         z   t        | j                  d         z   t        |      z   t        |      z          |r|j                  |       |r|j                         |	r>t!        j"                  | |t!        j$                  dd| j                  z   d||f      g       n>t!        j"                  | |t!        j$                  dd| j                  z   d|d|f      g       |j                  d       y # t        $ r!}d| j                   d}t        |      |d }~ww xY w)Nzcannot write mode z as TGArler,   r+   r   r-    rT   z-id_section has been trimmed to 255 charactersr&   r   r   r   r1   )r   r'   r   r*   r)   r   r   r2   s           TRUEVISION-XFILE. )SAVEr>   rC   OSErrorencoderinfogetr;   lenwarningswarnrZ   
getpalettewriter   o16r7   r   _saver@   )rZ   r3   filenamerN   bitsrG   rH   erK   rm   r,   r-   rF   r=   colormaplengthcolormapentryrJ   r*   s                     rO   ry   ry      s   "15bgg.|Y
 nnU#nn((M8RSY&
Q	##L"''++lB2OPJ_F|%
EF%%""5%0(+G(92(,%	ww. ..$$]BGGKKr4RSKQHH
6

\
	
Y-	 a&	 n
		
 ]
	 a&	 a&	 bggaj/	 bggaj/		 T(
	 U)	 


__Y(8!g{=STU	
 	__UFRWW$4a'1k9RST	
 HH9:K  ""277)73cl!"s   K 	K:K55K:)z.tgaz.icbz.vdaz.vstzimage/x-tga)rZ   zImage.Imager3   z	IO[bytes]rz   zstr | bytesrd   re   )
__future__r   rV   rt   typingr   rn   r   r   r   _binaryr	   r5   r
   rY   r   r   rx   r?   r   ro   ry   register_openri   register_saveregister_extensionsregister_mimerk   rc   rO   <module>r      s   $ # 	   , , ! !  ! 		 ~I9&& ~IN 
	
	H;`   L'' 6   L'' /   ,--/O P   L'' 7rc   