K i0ddlmZddlZddlmZddlmZmZddlm Z m Z ddl m Z m Z mZmZddlmZdd lmZdd lmZdd lmZdd lmZd ZddZddZGdde ZGddZGddejZe j@ejBeee jDejBee jFejBde jHejBdy)) annotationsN)BytesIO)ceillog)IO NamedTuple)BmpImagePluginImage ImageFilePngImagePlugin)i16le)i32le)o8)o16le)o32lesc &|jt|jjddk(}|jjdgd}g}|g|jjdgz}|j\}}t t |D]} | d|kDs| d|kDs| ddkDs| ddkDr%|D]} | j| k7r|j| |rtj| jd} | g} |D]Y} | j| k7rtj| jd} | | vs8|j| | j| [ j}|j| tjjd |j| |jt!t#||j%t#|d zz}|D]}|j\}}|jt'|dkr|nd|jt'|dkr|nd|r tj|jddnd \} }|jt'||jd |jd |jt!| t)}|r_|j+|d| dk7rZtj,d }t/j0||t/j2dd| zddgn|j+|d|j5d|j7}|r|ddt9|dzz|ddz}t#|}|jt9||jt9||j%}|j5||j|||z}|j5|y)N bitmap_formatbmpsizes))r)r) r)0r)@r)r)r append_imagesrr r) reducing_gapr)rrsdibr1rawrr)r"rpng )write_MAGIC encoderinfogetsizesortedsetappendr SAVEmodecopy thumbnailr ResamplingLANCZOSo16lentellrrsavenewr _save_Tileseekreado32)imfpfilenamerrframes provided_imswidthheightr. provided_imbits bits_usedother_imframeoffsetcolorsimage_ioand_mask image_bytes bytes_lencurrents X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/IcoImagePlugin.pyr=r=+sHHV ..  _ - 6C NN  R EF4"..,,_bAALGGME6s5z"! 7U?d1g.$q'C-47S= ' !K4' MM+ &%**;+;+;A~**5::6qr:w f F   T9  JJx 'rz 99S$/__UFTM1lKL JJx ' ammo %bq/C O;k"#>NNK $  Y  V'')  )# I$c,|jtSN) startswithr+)prefixs rU_acceptr[xs   V $$rVc|eZdZUded<ded<ded<ded<ded<ded<ded<ded <d ed <ded <ded <y) IconHeaderintrGrHnb_colorreservedplanesbppr.rNtuple[int, int]dimsquare color_depthN)__name__ __module__ __qualname____annotations__rVrUr]r]|s; J KMM K H I K  KrVr]c8eZdZddZddZd d dZd d dZd dZy) IcoFilec|jd}t|s d}t|||_g|_t |d|_t|j D]}|jd}|dxsd}|dxsd}|d}t |d}t||||d t |dt |dt|d t|d ||f||z|xs |dk7xrtt|dxsd } |jj| t|jd |_t|jdd|_y)zL Parse image from file-like object containing ico file data znot an ICO filerrrr r(r'r)) rGrHr_r`rarbr.rNrdrerfc|jSrX)rfxs rUz"IcoFile.__init__..s ammrV)keyc|jSrX)rerss rUruz"IcoFile.__init__..s ahhrVT)rvreverseN)r@r[ SyntaxErrorbufentryi16nb_itemsranger]i32rrr1r/) selfrzsmsgirGrHr_rb icon_headers rU__init__zIcoFile.__init__sM HHQKqz#Cc" " Aq  t}}% +A AaDKCEqT[SFtHa)C$!11ay1IAY1bzFOv~ THM$Ld3x;K6LTQTK JJ  k *5 +8DJJ,CD DJJ,>M rVcl|jDchc]}|j|jfc}Scc}w)zI Get a set of all available icon sizes and color depths. )r{rGrH)rhs rUrz IcoFile.sizess).2ZZ8!((#888s1ct|jD],\}}||jk(s|dus||jk(s*|cSy)NFr) enumerater{rdrf)rr.rbrrs rU getentryindexzIcoFile.getentryindexsDdjj) DAqquu}#,#2F rVcD|j|j||S)z, Get an image from the icon )rMr)rr.rbs rUgetimagezIcoFile.getimages zz$,,T3788rVc |j|}|jj|j|jj d}|jj|j|ddt j k(r@t j|j}tj|j|Stj|j}tj|j|jdt|jddz f|_|jd\}}}}t!j"|d|jz|||jd<|j$dk(r|jj||jj |jd|jdzdzd dd} tj&d |j| d d } n|jd} | dzdkDr| d|jddzz z } t| |jdzdz } |j|jz| z } |jj| |jj | } tj&d |j|d dt| dz df} | r"|j-d}|j/| |S#t($rt j*rd} nYEwxYw#t($rt j*rd} nYhwxYw)z- Get an image from frame idx r'Nrr r(r$rrprqLr#)rrr%r"z1;Ir%RGBA)r{rzr?rNr@r r+ PngImageFiler _decompression_bomb_checkr.r DibImageFiler^_sizetiler r>rb frombuffer ValueErrorLOAD_TRUNCATED_IMAGESconvertputalpha)ridxheaderdatarBdeoa alpha_bytesmaskw total_bytesand_mask_offset mask_datas rUrMz IcoFile.frames C  fmm$xx}}Q  fmm$ 8~,, ,,,TXX6B  + +BGG 4V Q ,,TXX6B  + +BGG 4 C Q$78BHJAq!Q"FRWW,Q"67 "(--&++"= "K o. HHMM+6   ++!AE B/ D ZZ' D! W" 66#<" 66#s$*#L.2L)L&%L&)M M N)rz IO[bytes]returnNone)rzset[tuple[int, int]])F)r.rcrb int | boolrr^)r.rcrbrr Image.Image)rr^rr)rgrhrirrrrrMrkrVrUrmrms0Nd9  9 ZrVrmcheZdZdZdZdZd dZed dZejd dZd dZ ddZ y ) IcoImageFilea PIL read-only image support for Microsoft Windows .ico files. By default the largest resolution image in the file will be loaded. This can be changed by altering the 'size' attribute before calling 'load'. The info dictionary has a key 'sizes' that is a list of the sizes available in the icon file. Handles classic, XP and Vista icon formats. When saving, PNG compression is used. Support for this was only added in Windows Vista. If you are unable to view the icon in Windows, convert the image to "RGBA" mode before saving. This plugin is a refactored version of Win32IconImagePlugin by Bryan Davis . https://code.google.com/archive/p/casadebender/wikis/Win32IconImagePlugin.wiki ICOz Windows Iconct|j|_|jj|jd<|jj dj |_|jy)Nrr) rmrCicorinfor{rdr.loadrs rU_openzIcoImageFile._openHsN477#!XX^^- 'HHNN1%))  rVc|jSrX)rrs rUr.zIcoImageFile.sizeNs zzrVcN||jdvr d}t|||_y)Nrz2This is not one of the allowed sizes of this image)rrr)rvaluers rUr.zIcoImageFile.sizeRs)  '* *FCS/ ! rVc |jB|jj|jk(rtjj |S|j j |j}|j |j|_|j|_|jr|j|_ |j|jk7rtjd|j j|j}t|jd}|j||<t||jd<|j|_tjj |S)NzImage was not the expected sizer)_imrBr.r rrrr3_modepalettewarningswarnrlistrr0)rrBindexrs rUrzIcoImageFile.loadYs 88 DGGLLDII$=;;##D) ) XX  tyy )  %%WW ::::DL 77dii  MM; <HH**4995E7+,E77E%L!$UDIIg DI{{%%rVcyrXrk)rposs rU load_seekzIcoImageFile.load_seekos rVN)rr)rrc)rrcrr)rzImage.core.PixelAccess | None)rr^rr) rgrhri__doc__formatformat_descriptionrpropertyr.setterrrrkrVrUrr0sO(F'  [[ &, rVrz.icoz image/x-icon)rBrrCrrDz str | bytesrr)rZbytesrbool)% __future__rriormathrrtypingrrr r r r _binaryrr|rrrrr8rrAr+r=r[r]rmr register_openr register_saveregister_extension register_mimerkrVrUrs.#!>>!!!! JZ%  __LB 9&&B RL''w?L''/,,f5L''8rV