zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
U
T±dŠã@sŠddlZddlmZmZddlmZddlmZdd„ZGdd    „d    ejƒZ    Gd
d „d ej
ƒZ e  e    j e    e¡e d e ¡e e    j d ¡dS)éNé)ÚImageÚ    ImageFile)Úi32be©Úo8cCs|dd…dkS)Nésqoif©)Úprefixr    r    úId:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\PIL/QoiImagePlugin.pyÚ_acceptsr c@seZdZdZdZdd„ZdS)Ú QoiImageFileZQOIzQuite OK ImagecsŠtˆj d¡ƒsd}t|ƒ‚t‡fdd„tdƒDƒƒˆ_ˆj d¡d}|dkrTd    nd
ˆ_ˆj dt    j
¡d d ˆjˆj  ¡dfgˆ_ dS) Nrznot a QOI filec3s|]}tˆj d¡ƒVqdS)rN)Úi32ÚfpÚread©Ú.0Úi©Úselfr    r Ú    <genexpr>sz%QoiImageFile._open.<locals>.<genexpr>érréÚRGBZRGBAÚqoi)rr) r rrÚ SyntaxErrorÚtupleÚrangeÚ_sizeÚmodeÚseekÚosÚSEEK_CURÚtellZtile)rÚmsgZchannelsr    rr Ú_openszQoiImageFile._openN)Ú__name__Ú
__module__Ú __qualname__ÚformatÚformat_descriptionr%r    r    r    r r sr c@s eZdZdZdd„Zdd„ZdS)Ú
QoiDecoderTcCsD||_|\}}}}|d|d|d|dd}||j|<dS)Nrééé é@)Ú_previous_pixelÚ_previously_seen_pixels)rÚvalueÚrÚgÚbÚaZ
hash_valuer    r    r Ú_add_to_previous_pixels)s $z"QoiDecoder._add_to_previous_pixelsc s>iˆ_dˆ_ˆ d dd„dDƒ¡¡tƒ}t ˆj¡}t|ƒˆj    j
ˆj    j |kr,ˆj   d¡d}|dkr†ˆj   d¡td    ƒ}n||d    kržˆj   d
¡}nd|d ?}|dkrÈ|d @}ˆj |d ¡}n&|dkr8ˆjd|d@d
?ddˆjd|d@d?ddˆjd|d@ddf}|ˆjdf7}n¶|dkr®ˆj   d¡d}|d @d‰|d@d
?d}    |d@d}
t‡‡fdd„t|    d|
fƒDƒƒ}|ˆjdf7}n@|dkrî|d @d} ˆj}|dkrà|dd…}||| 7}q8d dd„|Dƒ¡}ˆ |¡|dkr"|dd…}||7}q8ˆ t|ƒ¡dS)Nócss|]}t|ƒVqdS©Nrrr    r    r r3sz$QoiDecoder.decode.<locals>.<genexpr>)rrréÿrréþrr:réé?)rrrré0réé é éðééc3s(|] \}}ˆj|ˆ|dVqdS)r?N)r0)rrZdiff©Z
diff_greenrr    r rQsÿcss|]}t|ƒVqdSr9rrr    r    r r]s)éÿÿÿÿr)r1r0r7ÚjoinÚ    bytearrayrZ getmodebandsrÚlenÚstateZxsizeZysizeÚfdrrÚgetrÚ    enumerateZ
set_as_rawÚbytes) rÚbufferÚdataZbandsÚbyter2ÚopZop_indexZ second_byteZdiff_redZ    diff_blueZ
run_lengthr    rEr Údecode0s` 
ÿÿû
   þ
 
 
 
 
zQoiDecoder.decodeN)r&r'r(Z    _pulls_fdr7rSr    r    r    r r+&sr+rz.qoi)r!ÚrrÚ_binaryrrrr r Z    PyDecoderr+Z register_openr)Zregister_decoderZregister_extensionr    r    r    r Ú<module>    s  A