Files
intellecton/venv/lib/python3.12/site-packages/PIL/__pycache__/Jpeg2KImagePlugin.cpython-312.pyc
T

101 lines
18 KiB
Plaintext
Raw Normal View History

Ë
ß¼jG8ãóÈ—ddlmZddlZddlZddlZddlmZddlmZm Z m
Z
m Z dZ e r ddl
mZddlmZGd „d
«Zdd „Zdd „Z dd
„ZGd„de j«Zdd„Zdd„Zej.ej0ee«ej2ej0e«ej4ej0gd¢«ej6ej0d«y)é)Ú annotationsN)Úcasté)ÚImageÚ ImageFileÚ ImagePaletteÚ_binaryF)ÚCallable)ÚIOcóJ—eZdZdZd
d d„Zd d„Zd
d„Zdd„Zdd„Zdd„Z dd„Z
y )Ú BoxReaderz}
A small helper class to read fields stored in JPEG2000 header boxes
and to easily step into and read sub-boxes.
cóB—||_|dk\|_||_d|_y)Nréÿÿÿÿ)ÚfpÚ
has_lengthÚlengthÚremaining_in_box)Úselfrrs úX/home/antigravity/intellecton/venv/lib/python3.12/site-packages/PIL/Jpeg2KImagePlugin.pyÚ__init__zBoxReader.__init__%s#€ØˆŒØ  A™+ˆŒØˆŒ Ø "ˆÕócó®—|jr+|jj«|z|jkDry|jdk\r||jkSy)NFrT)rrÚtellrr)rÚ num_bytess rÚ _can_readzBoxReader._can_read+sH€Ø �?Š?˜tŸw™wŸ|™|›~° Ñ9¸D¿K¹KÒGàØ × Ñ  AÒ %à × 5Ñ 5Ñ5Ð 5àrcó—|j|«s
d}t|«‚|jj|«}t |«|krd|›dt |«›d�}t |«‚|j dkDr|xj |zc_|S)NzNot enough data in headerzExpected to read z bytes but only got ú.r)rÚ SyntaxErrorrÚreadÚlenÚOSErrorr)rrÚmsgÚdatas rÚ _read_byteszBoxReader._read_bytes5sƒ€Ø�~‰~˜iÔ(Ø-ˆCܘcÓ"Ð "à�w‰w�|‰|˜IÓ&ˆÜ ˆt‹9�yÒ Ø% i [Ð0DÄSÈÃYÀKÈqÐQˆCܘ#“,Ð à × Ñ  1Ò $Ø × !Ò ! YÑ .Õ !؈ rcóz—tj|«}|j|«}tj||«S©N)ÚstructÚcalcsizer$Úunpack)rÚ field_formatÚsizer#s rÚ read_fieldszBoxReader.read_fieldsCs1€Ü�‰˜|Ó,ˆØ×Ñ Ó%ˆÜ�}‰}˜\¨4Ó0Ð0rcóz—|j}|j|«}ttj|«|«Sr&)rr$r
ÚioÚBytesIO)rr+r#s rÚ
read_boxeszBoxReader.read_boxesHs3€Ø×$Ñ$ˆØ×Ñ Ó%ˆÜœŸ™ DÓ)¨4Ó0Ð0rcó„—|jr4|jj«|jz|jkSy)NT)rrrrr)rs rÚ has_next_boxzBoxReader.has_next_boxMs0€Ø �?Š?Ø—7‘7—<‘<“> D×$9Ñ$9Ñ9¸D¿K¹KÑGÐ Gàrcó°—|jdkDr4|jj|jtj«d|_t t ttf|jd««\}}|dk(r%t t|jd«d«}d}nd}||ks|j||z
«s
d}t|«‚||z
|_|S) Nrrz>I4srz>QéézInvalid header length) rrÚseekÚosÚSEEK_CURrÚtupleÚintÚbytesr,rr)rÚlboxÚtboxÚhlenr"s rÚ
next_box_typezBoxReader.next_box_typeSs¾€à × Ñ  1Ò $Ø �G‰G�L‰L˜×.Ñ.´· ± Ô <Ø "ˆÔôœ%¤¤U 
Ñ+¨T×-=Ñ-=¸fÓ-EÓF‰
ˆˆdØ �1Š9Üœ˜T×-Ñ-¨dÓ3°AÑ6Ó7ˆD؉DàˆDà �$Š;˜dŸn™n¨T°D©[Ô9Ø)ˆCܘcÓ"Ð "à $ t¡ ˆÔ؈ rN)r)rú IO[bytes]rr:ÚreturnÚNone)rr:rAÚbool)rr:rAr;)r*ÚstrrAztuple[int | bytes, ...])rAr
)rArC)rAr;) Ú__name__Ú
__module__Ú __qualname__Ú__doc__rrr$r,r0r2r?©rrr
r
s*„ñô
#ó ó ó1ó
1ó
ô rr
c óœ—|jd«}tj|«}||j|dz
«z}tjd|«\ }}}}}}} } } } }
||z
||z
f} |
dk(r1tjd|d«} | ddzdzdkDrd }
| |
fSd
}
| |
fS|
dk(rd }
| |
fS|
d k(rd
}
| |
fS|
dk(rd}
| |
fSd}t |«‚)z‹Parse the JPEG 2000 codestream to extract the size and component
count from the SIZ marker segment, returning a PIL (size, mode) tuple.éz >HHIIIIIIIIHrz>Bé&rér5úI;16ÚLÚLAéÚRGBéÚRGBAz"unable to determine J2K image mode)rr Úi16ber'Ú unpack_fromr)rÚhdrÚlsizÚsizÚrsizÚxsizÚysizÚxosizÚyosizÚ_Úcsizr+ÚssizÚmoder"s rÚ_parse_codestreamrcis*€ð
�'‰'�!‹*€CÜ �=‰=˜Ó €DØ
�—‘˜˜q™Ó!Ñ
!€CÜ=C×=OÑ=Oؘó>Ñ:€Dˆ$��d˜E 5¨!¨Q°°1°dð
�5‰L˜$ ™,Ð '€DØ ˆq‚yÜ×!Ñ! $¨¨RÓ0ˆØ �‰G�d‰N˜aÑ  !Ò #؈Dð �ˆ:ÐðˆDð �ˆ:Ðð
�ŠØˆð �ˆ:Ðð
�ŠØˆð �ˆ:Ðð
�ŠØˆð
�ˆ:Ðð3ˆÜ˜#ÓÐrcó0—|dk(ryd|zd|zzd|zz S)zµConvert JPEG2000's (numerator, denominator, exponent-base-10) resolution,
calculated as (num / denom) * 10^exp and stored in dots per meter,
to floating-point dots per inch.rNéþé
i'rI)ÚnumÚdenomÚexps rÚ _res_to_dpirjˆs*€ð
�‚zØØ �#‰I˜˜S™Ñ ! e¨e¡mÑ 4Ð4rcóh—t|«}d}d}|j«rU|j«}|dk(r|j«}n/|dk(r|j d«ddk(rd}|j«rŒU|€J‚d}d}d}d}d} d}
d} |j«�r|j«}|dk(r†|j d «\} }
}}t | t «sJ‚t |
t «sJ‚t |t «sJ‚|
| f}|d
k(r |d zd kDrd
}�n||d
k(rd}�ns|dk(rd}�nj|dk(rd}�na|dk(�r[d}�nW|dk(r?|j d«\}}}}|d
k(�r6|dvrd} �n.|dk(r d} |dk(�r!d}�n|dk(�rd} �n|dk(�r|dv�r| dv�r|j d«\}}t |t «sJ‚t |t «sJ‚d}|j d d!|zz«D]}t |t «sJ‚||kDsŒ|}Œ|d k�r�|dk(r
| dk(rdnd}nd}tj|«}
t|«D]]}g}|j d d!|zz«D]%}t |t «sJ‚|j|«Œ'|
jt|««Œ_|dk(rd"nd#}nò|d$k(rí|j«}|j«rÍ|j«}|d%k(r§|j d&«\}}}}}} t |t «sJ‚t |t «sJ‚t |t «sJ‚t |t «sJ‚t |t «sJ‚t | t «sJ‚t||| «}!t|||«}"|!�|"�|!|"f} n|j«rŒÍ|j«r�Œ|�|€
d'}#t|#«‚|||| |
fS)(zªParse the JP2 header box to extract size, component count,
color space information, and optionally DPI information,
returning a (size, mode, mimetype, dpi) tuple.Nsjp2hsftypz>4srsjpx z image/jpxsihdrz>IIHBrrMr5rNrOrKrPrQrRrSrTscolrz>BBBI)réÚ1é ÚCMYKéspclr)rOrP)rmrOz>HBú>ÚBÚPÚPAsres srescz>HHHHBBzMalformed JP2 header)r
r2r?r0r,Ú
isinstancer:rÚrangeÚappendÚgetcolorr9rjr)$rÚreaderÚheaderÚmimetyper=r+rbÚbpcÚncÚdpiÚpaletteÚcolrÚheightÚwidthÚmethr_ÚenumcsÚneÚnpcÚ max_bitdepthÚbitdepthÚ palette_modeÚiÚcolorÚvalueÚresÚtresÚvrcnÚvrcdÚhrcnÚhrcdÚvrceÚhrceÚhresÚvresr"s$ rÚ_parse_jp2_headerr—‘s'€ô�r‹]€FØ
€FØ€HØ
×
Ñ
Ô
Ø×#Ñ#Ó%ˆà �7Š?Ø×&Ñ&Ó(ˆFØ Ø
�WŠ_Ø×!Ñ! %Ó(¨Ñ+¨wÒ6Ø&�ð ×
Ñ
Õ
ð Ð ÐÐ à €DØ €DØ
€CØ
€BØ
€CØ€GØ €Dà
×
Ñ
Õ
Ø×#Ñ#Ó%ˆà �7Š?Ø%+×%7Ñ%7¸Ó%@Ñ "ˆF�E˜2˜sܘf¤cÔ*Ð *Ð*ܘe¤SÔ)Ð )Ð)ܘc¤3Ô'Ð 'Ð'ؘ6�?ˆDØ�QŠw˜C $™J¨!Ò+Ø’Ø�q’Ø’Ø�q’Ø’Ø�q’Ø’Ø�q“Ø’Ø
�WŠ_Ø!'×!3Ñ!3°GÓ!<Ñ ˆD�!�Q˜Ø�q‹yؘWÑ$Ø’Dؘr’\Ø!�DؘQ“wØ%šØ˜r“\Ø’DØ
�W‹_ ¨Ò!4¸ÀZÒ9OØ×(Ñ(¨Ó/‰GˆB�ܘb¤#Ô&Ð &Ð&ܘc¤3Ô'Ð 'Ð'؈LØ"×.Ñ.¨s°c¸C±iÑ/@ÓAò