K i"#ddlmZddlZddlmZddlmZddlmZm Z m Z  ddlm Z dZ d ZdZdd Zdd Zdd ZGdde jZddZ d ddZe j,ej.eee rwe j0ej.ee j2ej.ee j4ej.ddge j6ej.dyy#e $rd Z YwxYw)) annotationsN)BytesIO)IO)ExifTagsImage ImageFile)_avifTFautoctj}|jdD]A}|jdd|k(s|jddjddcSy)Nz, z [r: )r codec_versionssplit) codec_nameversionsversions Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/AvifImagePlugin.pyget_codec_versionrsg##%H>>$'8 == q !Z /==%b)//4Q7 78 c:|dddk7ry|dd}|dvr ts yyy) NsftypF )savifsavissmif1smsf1zEimage file could not be identified because AVIF support not installedT) SUPPORTED)prefix major_brands r_acceptrs@ a{g2,K  W  rctrtSttdrttjdStj xsdS)Nsched_getaffinityrr)DEFAULT_MAX_THREADShasattroslenr! cpu_countrr_get_default_max_threadsr(8s=""r&'2''*++||~""rcLeZdZdZdZdZd dZd dZd fd Zd dZ d dZ xZ S) AvifImageFileAVIFz AVIF imagerc4ts d}t|tdk7r&tjts d}t |tj |jjtt|_ |jj\|_ |_ |_}}}}|jdkD|_|r||j d<|r||j d<|dk7s|rt#j$}|r<|j'||j)t*j,j.d}nd}||k7r-||t*j,j.<|j1}|r||j d<|j3dy) NzAimage file could not be opened because AVIF support not installedr zInvalid opening codecr icc_profilexmpexifr)r SyntaxErrorDECODE_CODEC_CHOICEr decoder_codec_available ValueError AvifDecoderfpreadr(_decoderget_info_sizen_frames_mode is_animatedinforExifloadgetrBase Orientationtobytesseek)selfmsgiccr/exif_orientationr. exif_dataoriginal_orientations r_openzAvifImageFile._openFsUUCc" " & (1N1N 2 *CS/ !)) GGLLN  $ &   MM " " $ P DM4:sD:JC ==1, '*DIIm $ "DIIe  q D It$'0}}X]]5N5NPQ'R$'($#777G (--334 ((*  $DIIf  ! rc|j|sy||_tjdd|jzd|j g|_y)Nraw)rrr) _seek_check_AvifImageFile__framer _Tilesizemodetile)rEframes rrDzAvifImageFile.seekosB&  __UFTYY,>499MN rc|jr|jj|j\}}}}t d||z z|j d<t d||z z|j d<|j r&|jr|j jt||_t|-S)Ni timestampduration) rSr7 get_framerOroundr=r5 _exclusive_fpclosersuperr?)rEdata timescalepts_in_timescalesduration_in_timescales __class__s rr?zAvifImageFile.loadws 99 '' 5 GD).0F&+43Dy3P+Q%RDIIk "$)$2H92T*U$VDIIj !ww4-- dmDGw|~rcyNr')rEposs r load_seekzAvifImageFile.load_seeks rc|jSrc)rO)rEs rtellzAvifImageFile.tells ||r)returnNone)rTintrhri)rhzImage.core.PixelAccess | None)rdrjrhrirhrj) __name__ __module__ __qualname__formatformat_descriptionrOrKrDr?rerg __classcell__)ras@rr*r*As. F%G'RO  rr*c"t|||dy)NT)save_all)_save)imr5filenames r _save_allrws "b(T*rcn |jj}|rt|jdg}ng}d}|g|zD]}|t |ddz }|jdd}t |t r |dks|dkDr d} t| |jd d} |jd d } |jd d } |jdt} |jdd}|dk7r"tj|s d} t| |jdd}|jdd}|jdd}t|jdd}t|jd||cxk(xrdk(nc}|jd|jjd}d}|jdx}rt |tjr|}n%tj}|j|t j"j$|vr>|j't j"j$}|r|j)nd}n*t |tjr|j)}|jd}t |t*r|j-d}|jd}|Mt |t.r|j1} t3|}t5d|D}|r d!} t| tj8|j:| || | |||||||xsd|xsd||xsd|}d}d}|j=}|dk(} |g|zD]}t |dd} t?| D]}!|jA|!|}"|jB}#|jBd"vr!|jDrd#nd$}#|jG|#}"t | tt2fr| |}n| }|jI|"j)d%|#||"j:|#||dz }|r |jA||jK}$|$ d&} tM| |jO|$y#t6$rd }YwxYw#|jA|wxYw)'N append_imagesrr:rqualityKdzInvalid quality settingrW subsamplingz4:2:0speed max_threadscodecr zInvalid saving codecrangefull tile_rows tile_colsalpha_premultipliedF autotilingr-r/rr.zutf-8advancedc3^K|]%}t|t xst|dk7'yw)N) isinstancetupler%).0vs r z_save..s*TajE22Ac!fkATs+-Tzcadvanced codec options must be a dict of key-value string pairs or a series of key-value two-tuples>RGBRGBArrrMz1cannot write file as AVIF (encoder returned None))( encoderinfocopylistr@getattrrrjr3r(r encoder_codec_availableboolr=rr>r?rrArBpoprCstrencodedictitemsrany TypeError AvifEncoderrQrgrrDrRhas_transparency_dataconvertaddfinishOSErrorwrite)%rur5rvrsr=rytotalimsrzrFrWr}r~rrrange_tile_rows_log2tile_cols_log2rrr-rHr/rIr.rinvalidenc frame_idxframe_durationcur_idxis_single_framenfridxrTrawmoder]s% rrtrtsj >>   DTXXor:;  Etm#- j!,,-hhy"%G gs #w{gm'oxx A&H((='2K HHWa E((=*B*DEK HHWf %E u<rs6" ((I 4#II''IX+ MRJJ"J.9JEIJ JZM((-A E ,,e4EM00)<Em22Wh4GHE ,,l;  eIsC::DD