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
ZGdde j«ZddZddZej.ej0ee«ej2ej0e«ej4ej0gd¢«ej6ej0d«y)é)Ú annotationsN)Úcasté)ÚImageÚ ImageFileÚ ImagePaletteÚ_binaryF)ÚCallable)ÚIOcóJeZdZdZd
d dZd dZd
dZddZddZddZ ddZ
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ÒØ × Ñ  AÒ  × 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_bytes5Ø~‰~˜-ˆ˜ w‰w|‰|˜&ˆÜ ˆt9 Ø% i [Ð0DÄSÈÃYÀKÈqÐQˆCܘ#“,Ð à × Ñ  1Ò × ! YÑ ˆ rcóztj|«}|j|«}tj||«S©N)ÚstructÚcalcsizer$Úunpack)rÚ field_formatÚsizer#s rÚ read_fieldszBoxReader.read_fieldsCs1ܘ|ÓØ×Ñ ÓÜ}‰}˜\¨4Ó0rcóz|j}|j|«}ttj|«|«Sr&)rr$r
ÚioÚBytesIO)rr+r#s rÚ
read_boxeszBoxReader.read_boxesHs3Ø×Ø×Ñ ÓÜœŸ DÓ)¨4Ó0rcó„|jr4|jj«|jz|jkSy)NT)rrrrr)rs rÚ has_next_boxzBoxReader.has_next_boxMs0Ø ?Š?Ø—77—<<“> D×$9Ñ$9Ñ9¸D¿K¹KÑ 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_typeSà × Ñ  1Ò G‰GL‰L˜×.´· ± Ô <Ø "ˆÔôœ%¤¤U 
Ñ+¨T×-=Ñ-=¸fÓ-EÓF‰
ˆˆdØ 1Š9Üœ˜T×-¨dÓ3°AÑ7ˆD؉DàˆDà $Š;˜dŸn™n¨T°D©[Ô)ˆ˜ "à $  ˆÔ؈ 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*ñô
 ó ó

ô 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 |«)zParse 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Ú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×! $¨¨RÓØ ‰Gd‰N˜aÑ  !Ò ˆDð ˆ:ÐðˆDð ˆ:Ðð
ŠØˆð ˆ:Ðð
ŠØˆð ˆ:Ðð
ŠØˆð
ˆ:Ððܘ#ÓÐ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Ñ 4rcóht|«}d}d}|j«rU|j«}|dk(r|j«}n/|dk(r|j d«ddk(rd}|j«rŒU|Jd}d}d}d}d} d}
d} |j«r|j«}|dk(r†|j d «\} }
}}t | t «sJt |
t «sJt |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|dvr| dvr|j d«\}}t |t «sJt |t «sJd}|j d d!|zz«D]}t |t «sJ||kDsŒ|}Œ|d kr|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 «sJt |t «sJt |t «sJt |t «sJt |t «sJt | t «sJt||| «}!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éÚ ÚCMYKéspclr)rOrP)rmrOz>HBú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ÚcolorÚvalueÚresÚtresÚvrcnÚvrcdÚhrcnÚhrcdÚvrceÚhrceÚhresÚvresr"s$ rÚ_parse_jp2_headerr—s'ôr]€FØ
€FØ€HØ
×
Ñ
Ô
Ø×à 7Š?Ø×(ˆ Ø
WŠ_Ø×! Ñ+¨wÒ&ð ×
Ñ
Õ
ð Ð ÐÐ à €DØ €DØ
€CØ
€BØ
€CØ€GØ €Dà
×
Ñ
Õ
Ø×à 7Š?Ø%+×%7Ñ%7¸Ó%@Ñ "ˆFE˜2˜˜f¤cÔ ˜e¤SÔ ˜c¤3Ô ˜6?ˆQŠw˜C $™J¨!ÒØq’ØØq’ØØq’ØØq“ØØ
WŠ_Ø!'×!3Ñ!3°GÓ!<Ñ ˆD!Q˜Øq˜WÑ’Dؘr’\Ø!˜Q“wØØ˜r“\Ø’DØ
W‹_ ¨Ò!4¸ÀZÒ9OØ×Ó/‰GˆBܘb¤#Ô ˜c¤3Ô ˆ"×.¨s°c¸C±iÑ/@Ó