
    ]HjU$                    *   S SK Jr  S SKrS SKJr  S SKJr  SSKJrJ	r	J
r
Jr   SSKJr  SrS
rS rSS jrSS jrSS jr " S S\
R                  5      rSS jr S         SS jjr\	R.                  " \R0                  \\5        \(       aw  \	R2                  " \R0                  \5        \	R4                  " \R0                  \5        \	R6                  " \R0                  SS/5        \	R8                  " \R0                  S5        gg! \ a    S	r Nf = f)    )annotationsN)BytesIO)IO   )ExifTagsImage	ImageFileImageSequence)_avifTFautoc                    [         R                  " 5       nUR                  S5       HC  nUR                  S5      S   U :X  d  M  UR                  S5      S   R                  S5      S   s  $    g )Nz, z [r   : )r   codec_versionssplit)
codec_nameversionsversions      U/Users/admin/workspace/tools/venv/lib/python3.13/site-packages/PIL/AvifImagePlugin.pyget_codec_versionr      sb    ##%H>>$'==q!Z/==%b)//4Q77 (     c                J    U SS S:w  a  gU SS nUS;   a  [         (       d   ggg)	N      s   ftypF   )s   avifs   aviss   mif1s   msf1zEimage file could not be identified because AVIF support not installedT)	SUPPORTED)prefixmajor_brands     r   _acceptr       sB    a{g2,K   yW r   c                     [         (       a  [         $ [        [        S5      (       a  [        [        R                  " S5      5      $ [        R
                  " 5       =(       d    S$ )Nsched_getaffinityr   r   )DEFAULT_MAX_THREADShasattroslenr"   	cpu_count r   r   _get_default_max_threadsr)   8   sC    ""r&''2''*++||~""r   c                  `   ^  \ rS rSrSrSrSrSS jrSS jrSU 4S jjr	SS jr
SS	 jrS
rU =r$ )AvifImageFileA   AVIFz
AVIF imager   c                   [         (       d  Sn[        U5      e[        S:w  a,  [        R                  " [        5      (       d  Sn[        U5      eU R                  c   e[        R                  " U R                  R                  5       [        [        5       5      U l
        U R                  R                  5       u  U l        U l        U l        p#pEU R                  S:  U l        U(       a  X R                   S'   U(       a  XPR                   S'   US:w  d  U(       a  ["        R$                  " 5       nU(       a<  UR'                  U5        UR)                  [*        R,                  R.                  S5      nOSnXG:w  a,  XF[*        R,                  R.                  '   UR1                  5       nU(       a  X0R                   S'   U R3                  S5        g )	NzAimage file could not be opened because AVIF support not installedr   zInvalid opening codecr   icc_profilexmpexifr   )r   SyntaxErrorDECODE_CODEC_CHOICEr   decoder_codec_available
ValueErrorfpAvifDecoderreadr)   _decoderget_info_sizen_frames_modeis_animatedinfor   Exifloadgetr   BaseOrientationtobytesseek)selfmsgiccr1   exif_orientationr0   	exif_dataoriginal_orientations           r   _openAvifImageFile._openF   s]   yUCc""&(1N1N2
 2
 *CS/!ww"""))GGLLN$&
 MM""$ 	P
DM4:s:J  ==1,'*IIm$"IIeq D

It$'0}}X]]5N5NPQ'R$'($77G(--334 ((* $IIf		!r   c                    U R                  U5      (       d  g Xl        [        R                  " SSU R                  -   SU R
                  5      /U l        g )Nraw)r   r   r   )_seek_check_AvifImageFile__framer	   _Tilesizemodetile)rG   frames     r   rF   AvifImageFile.seekq   sC    && __UFTYY,>499MN	r   c                  > U R                   (       a  U R                  R                  U R                  5      u  pp4[	        SX2-  -  5      U R
                  S'   [	        SXB-  -  5      U R
                  S'   U R                  (       a+  U R                  (       a  U R                  R                  5         [        U5      U l        [        TU ]-  5       $ )Ni  	timestampduration)rV   r9   	get_framerR   roundr?   r6   _exclusive_fpcloser   superrA   )rG   data	timescalepts_in_timescalesduration_in_timescales	__class__s        r   rA   AvifImageFile.loady   s    99 ''5 GD. &+43D3P+Q%RDIIk"$)$2H2T*U$VDIIj!ww4--dmDGw|~r   c                    g Nr(   )rG   poss     r   	load_seekAvifImageFile.load_seek   s    r   c                    U R                   $ rh   )rR   )rG   s    r   tellAvifImageFile.tell   s    ||r   )__framer9   r=   r;   r6   r>   r<   rV   )returnNone)rW   intrp   rq   )rp   zImage.core.PixelAccess | None)ri   rr   rp   rq   rp   rr   )__name__
__module____qualname____firstlineno__formatformat_descriptionrR   rM   rF   rA   rj   rm   __static_attributes____classcell__)re   s   @r   r+   r+   A   s3    F%G)VO r   r+   c                    [        XUSS9  g )NT)save_all)_save)imr6   filenames      r   	_save_allr      s    	"(T*r   c                
  ^# U R                   R                  5       nU(       a  [        UR                  S/ 5      5      nO/ n1 Skm#[	        U#4S jU /U-    5       5      nUR                  SS5      n[        U[        5      (       a  US:  d  US:  a  Sn[        U5      eUR                  S	S5      n	UR                  S
U(       a  SOS5      n
UR                  SS5      nUR                  S[        5       5      nUR                  SS5      nUS:w  a(  [        R                  " U5      (       d  Sn[        U5      eUR                  SS5      nUR                  SS5      nUR                  SS5      n[        UR                  SS5      5      n[        UR                  SUUs=:H  =(       a    S:H  Os  5      5      nUR                  SU R                  R                  S5      5      nSnUR                  S5      =n(       a  [        U[        R                  5      (       a  UnO&[        R                  " 5       nUR                  U5        [         R"                  R$                  U;   aC  UR'                  [         R"                  R$                  5      nU(       a  UR)                  5       OSnO/[        U[        R                  5      (       a  UR)                  5       nUR                  S5      n[        U[*        5      (       a  UR-                  S5      nUR                  S 5      nUbW  [        U[.        5      (       a  UR1                  5       n [3        U5      n[5        S! U 5       5      nU(       a  S#n[        U5      e[        R8                  " U R:                  U
UUUUUUUUUU=(       d    SU=(       d    SUU=(       d    SU5      nSnSnU R=                  5       nU(       + =(       a    [?        U S$S5      (       + n U /U-    H  n[@        RB                  " U5       H  n U RD                  n!URD                  S%;  a:  URF                  (       a  S&n!OURD                  T#;   a  S'n!OS(n!U RI                  U!5      n [        U	[        [2        45      (       a  U	U   nOU	nURK                  U R)                  S)U!5      UU R:                  U!U5        US-  nU(       a  M    M     M     U RM                  U5        URO                  5       n"U"c  S*n[Q        U5      eURS                  U"5        g ! [6         a    S"n GNf = f! U RM                  U5        f = f)+Nappend_images>   1FILI;16I;16BI;16LI;16Nc              3  ~   >#    U  H2  n[         R                  " U5        H  nUR                  T;   v   M     M4     g 7frh   )r
   IteratorrU   ).0imsrW   grayscale_modess      r   	<genexpr>_save.<locals>.<genexpr>   s9      'C"++C0E 	

o%0 	&'s   :=qualityK   r   d   zInvalid quality settingr[   subsamplingz4:0:0z4:2:0speed   max_threadscodecr   zInvalid saving codecrangefull	tile_rows	tile_colsalpha_premultipliedF
autotilingr/   r   r1   r   r0   zutf-8advancedc              3  v   #    U  H/  n[        U[        5      (       + =(       d    [        U5      S :g  v   M1     g7f)   N)
isinstancetupler&   )r   vs     r   r   r      s*     T8ajE22Ac!fkA8s   79Tzcadvanced codec options must be a dict of key-value string pairs or a series of key-value two-tuplesr>   >   r   RGBRGBAr   r   r   rP   z1cannot write file as AVIF (encoder returned None))*encoderinfocopylistrB   allr   rr   r5   r)   r   encoder_codec_availableboolr?   r   r@   rA   r   rC   rD   poprE   strencodedictitemsr   any	TypeErrorAvifEncoderrT   rm   getattrr
   r   rU   has_transparency_dataconvertaddrF   finishOSErrorwrite)$r   r6   r   r}   r?   r   	grayscaler   rH   r[   r   r   r   r   range_tile_rows_log2tile_cols_log2r   r   r/   rJ   r1   rK   r0   r   invalidenc	frame_idxframe_durationcur_idxis_single_framer   rW   rawmodera   r   s$                                      @r   r~   r~      s    >> DTXXor:;MO 4-' I hhy"%Ggs##w{gm'oxx
A&H((=Y'GLKHHWa E((=*B*DEKHHWf%Eu<<UCC$oXXgv&FXXk1-NXXk1-Ntxx(=uEFdhh|^~-R-RQR-RSTJ((="''++m*DEKxxtdEJJ''I

INN4 ==$$	1(}}X]]-F-FG*39$$&Dejj))$$&D
((5/C#sjj!xx
#Hh%%~~'H	UXH T8TTG<  S/! 


s
s!C( INggiG''QM50Q,QO$4-'C&//4**88#7700"(_4"%"'!MM'2E hu66%-i%8N%-N MM%1"JJ# Q	x? 5 (F 	 ::<D|AclHHTNa  	G	P 	s%   T 4CT+ 	T+ T('T(+T>z.avifz.avifsz
image/avif)r   r   rp   z
str | None)r   bytesrp   z
bool | strrs   )r   Image.Imager6   	IO[bytes]r   str | bytesrp   rq   )F)
r   r   r6   r   r   r   r}   r   rp   rq   )
__future__r   r%   ior   typingr    r   r   r	   r
   r   r   ImportErrorr3   r#   r   r    r)   r+   r   r~   register_openrx   register_saveregister_save_allregister_extensionsregister_mimer(   r   r   <module>r      s,   " 	   7 7I   4#KI'' K\+
 MRLL"L.9LEIL	L^   M((- A	,,e4	M00)<	m22Wh4GH	,,l;	 m  Is   D DD