
    _Og                     V   S SK r S rS rS rS rS rS rS rS	 rS
 r	\
S:X  a  S SKr\	" \" \R                  S   S5      R                  5       5      u  rrrrrrr\" S\-  5        \" S\-  5        \" S\-  5        \" S\-  5        \" S\-  5        \" S\-  5        \" S\-  5        gg)    Nc                     [         R                  " SXUS-    5      S   nXS-   US-    nSnUS:X  a$  [         R                  " SXS-   US-    5      S   nSnUS:X  a  X!-
  nX-   nXU-   U nX4Xg4$ )N>I   r         z>Q   structunpack)data	byteStartnoBytesboxLengthValueboxTypecontentsStartOffsetbyteEndboxContentss           H/Users/admin/workspace/ai/Jarvis/env/lib/python3.13/site-packages/jp2.pygetBoxr      s    ]]4)a-)HI!LNq=9q=1GtTa-)b.-QRSTU  ,(G#66AKW::    c                 J    [         R                  " SU S S 5      u  pp4X!X4S-   4$ )Nz>IIHB   r   r	   )r   heightwidthchannelsbpps        r   
parse_ihdrr   '   s,    #)==$s)#D F8(!G++r   c                     [         R                  " SU SS 5      S   nUS:w  a  [        S5      e[         R                  " SU SS  5      S   nUS:X  a  gUS	:X  a  g
[        SU-  5      e)Nz>Br   r   z&only enumerated color method supportedr      r   RGB   Lz8only sRGB and greyscale color space is supported, got %d)r
   r   	Exception)r   methenumCSs      r   
parse_colrr&   ,   st    ==tAay)!,Dqy@AA]]4ab*1-F|	2IFR
 	
r   c                 ~    [         R                  " SU 5      u  pp4pVX-  SU-  -  S-  S-  nX4-  SU-  -  S-  S-  nXx4$ )Nz>HHHHBB
   d   gRQ@r	   )	r   hnumhdenvnumvdenhexpvexphdpivdpis	            r   
parse_rescr2   ;   sU    )/y$)G&DD[RX&,4D[RX&,4D:r   c                     Su  p[        U 5      nSnSnXC:  a9  US:w  a3  [        XU5      u  pVpxUS:X  a  [        U5      u  p X4$ XC:  a  US:w  a  M3  X4$ )N)NNr   r   s   resc)lenr   r2   )	r   r0   r1   r   r   r   r   r   r   s	            r   	parse_resr5   B   ss    JD$iGIN

.A"58>tPW8X5g#K0JD: 
.A"5
 :r   c                     Su  pp4n[        U 5      nSnSnXv:  a^  US:w  aX  [        XU5      u  ppU	S:X  a  [        U5      u  ppO%U	S:X  a  [        U5      nOU	S:X  a  [	        U5      u  pEU
nXv:  a  US:w  a  MX  XX4UWW4$ )NNNNNNr   r   s   ihdrs   colrs   res )r4   r   r   r&   r5   )r   r   r   
colorspacer0   r1   r   r   r   r   r   r   r   r   s                 r   
parse_jp2hr9   O   s    ,H)E:T$iGIN

.A"58>tPW8X5g+5k+B(E8S#K0J";/JD	 
.A"5 :T8SAAr   c                 &   [        U 5      nSnSnSu  pEpgnX!:  a;  US:w  a5  [        XU5      u  p9pU	S:X  a  [        U5      u  pEpgpnOU
nX!:  a  US:w  a  M5  U(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      eXEXgUWW4$ )Nr   r   r7   s   jp2hzno width in jp2 headerzno height in jp2 headerzno colorspace in jp2 header)r4   r   r9   r#   )r   r   r   r   r   r   r8   r0   r1   r   r   r   r   r   s                 r   parsejp2r;   `   s    $iGIN,H)E:T

.A"58>tPW8X5gCMD@E:TS 	 
.A"5 011122566:T8SAAr   c                 "   [         R                  " SU SS 5      u  pp4pV      pxS /U-  n	S /U-  n
S /U-  n[        U5       H6  n[         R                  " SU SSU-  -   SSUS-   -  -    5      u  X'   X'   X'   M8     U	/ SQ:X  d   eX5-
  XF-
  S S S US4$ )	Nz>HHIIIIIIIIHr   *   BBBr   r   )   r?   r?   r   )r
   r   range)r   lsizrsizxsizysizxosizyosiz_csizssizxrsizyrsizis                r   parsej2krM   w   s    =C]]Qr
>:DE!Q1 6D=DFTMEFTME4[&,mm4QU
R!q1u+%56'
#58  9<tT4q@@r   c                 @    U S S S:X  a  [        U 5      $ [        U 5      $ )Nr   s   OQ)rM   r;   )r   s    r   parserO      s%    BQx&&~~r   __main__r   rbz
width = %dzheight = %dzcolorspace = %sz	hdpi = %sz	vdpi = %szchannels = %szbpp = %s)r
   r   r   r&   r2   r5   r9   r;   rM   rO   __name__sysopenargvreadr   r   r8   r0   r1   r   r   print r   r   <module>rY      s   , ;,


B"B.A z;@SXXa[$$$&<8E6:tT8S 
,
	-&
 !	
j
()	+
	+
	/H
$%	*s
 r   