
    %oib%                         S SK r S SKr S SKrS SKJr  S SKJrJr  S SKJ	r	J
r
  S SKJr  S SKJrJrJrJrJr  S SKJr  S SKJrJrJrJr  S	rS
\S\4S jr " S S5      r " S S5      rg)    N)BytesIO)BinaryIOLiteral)JBIG2StreamReaderJBIG2StreamWriter)LTImage)LITERAL_DEVICE_CMYKLITERAL_DEVICE_GRAYLITERAL_DEVICE_RGBLITERAL_INLINE_DEVICE_GRAYLITERAL_INLINE_DEVICE_RGB)PDFValueError)LITERALS_DCT_DECODELITERALS_FLATE_DECODELITERALS_JBIG2_DECODELITERALS_JPX_DECODEzCould not import Pillow. This dependency of pdfminer.six is not installed by default. You need it to to save jpg images to a file. Install it with `pip install 'pdfminer.six[image]'`xreturnc                     U S-   S-  S-  $ )N       )r   s    J/var/www/html/land-ocr/venv/lib/python3.13/site-packages/pdfminer/image.pyalign32r      s    UqLA    c            
       H    \ rS rSrS\S\S\S\SS4
S jrS	\S
\SS4S jrSr	g)	BMPWriter#   fpbitswidthheightr   Nc                    Xl         X l        X0l        X@l        US:X  a  SnOUS:X  a  SnOUS:X  a  SnO[	        U5      e[        U R                  U R                  -  S-   S-  5      U l        U R                  U R                  -  U l        SUS	-  -   n[        R                  " S
SU R                  U R                  SU R                  SU R                  SSUS5      n[        U5      S:X  d   [        [        U5      5      5       e[        R                  " SSSX`R                  -   SSU5      n[        U5      S:X  d   [        [        U5      5      5       eU R                   R                  U5        U R                   R                  U5        US:X  a;  S H4  n	U R                   R                  [        R                  " SXU	5      5        M6     OIUS:X  aC  [        S5       H4  n	U R                   R                  [        R                  " SXU	5      5        M6     U R                   R                  5       U l        U R                  U R                  -   U l        g )N               r      6   r   z<IiiHHIIIIII(   z<ccIHHI   B   M   )r      BBBx)r   r    r!   r"   r   r   linesizedatasizestructpacklenstrwriterangetellpos0pos1)
selfr   r    r!   r"   ncols
headersizeinfoheaderis
             r   __init__BMPWriter.__init__$   s   	
19EQYERZE%%dii!7!!; AB3uqy(
{{JJKKIIMM
 4yB.CI.&
 6{b 2#c&k"22 fdA:fkk&!:; c\3Zfkk&!:;  GGLLN	II-	r   ydatac                     U R                   R                  U R                  US-   U R                  -  -
  5        U R                   R	                  U5        g )Nr$   )r   seekr;   r1   r7   )r<   rD   rE   s      r   
write_lineBMPWriter.write_lineZ   s8    TYY!a%4==!889dr   )r    r2   r   r"   r1   r:   r;   r!   )
__name__
__module____qualname____firstlineno__r   intrB   bytesrH   __static_attributes__r   r   r   r   r   #   sE    4.8 4.3 4.s 4.C 4.D 4.lC u  r   r   c                       \ rS rSrSrS\SS4S jrS\S\4S jrS\S\4S	 jr	S\S\4S
 jr
S\S\4S jrS\S\S\S\S\S\4S jrS\S\4S jrS\S\4S jr\S\S\4S j5       rS\S\S\\\4   4S jrSrg)ImageWriter_   zMWrite image to a file

Supports various image types: JPEG, JBIG2 and bitmaps
outdirr   Nc                     Xl         [        R                  R                  U R                   5      (       d!  [        R                  " U R                   5        g g )N)rT   ospathexistsmakedirs)r<   rT   s     r   rB   ImageWriter.__init__e   s3    ww~~dkk**KK$ +r   imagec                    UR                   u  p#UR                  R                  5       nU(       d  U R                  U5      nU$ US   S   [        ;   a  U R                  U5      nU$ US   S   [        ;   a  U R                  U5      nU$ U R                  U5      (       a  U R                  U5      nU$ UR                  S:X  a%  U R                  XX2S-   S-  UR                  5      nU$ UR                  S:X  aM  [        UR                  ;   d  [        UR                  ;   a%  U R                  XX2S-  UR                  S-  5      nU$ UR                  S:X  aG  [        UR                  ;   d  [         UR                  ;   a  U R                  XX2UR                  5      nU$ [#        U5      S:X  a#  US   S   [$        ;   a  U R                  U5      nU$ U R'                  U5      nU$ )zSave an LTImage to diskr   r$   r)   r&   r   )srcsizestreamget_filters_save_bytesr   
_save_jpegr   _save_jpeg2000_is_jbig2_iamge_save_jbig2r    	_save_bmpr   
colorspacer   r
   r   r5   r   	_save_raw)r<   r[   r!   r"   filtersnames         r   export_imageImageWriter.export_imagej   s   --,,**,##E*D@ = R[^22??5)D: 7 R[^22&&u-D4 1 !!%((##E*D. + ZZ1_>>%q8H%**UD( % ZZ1_%"2"22(E,<,<<>>%	5::PQ>RD  ZZ1_5#3#33)U-=-==>>%uzzJD  \Q71:a=4I#I##E*D
  >>%(Dr   c                    UR                   R                  5       nU R                  US5      u  p4[        US5       n[        UR
                  ;   aZ   SSKJnJn  [        U5      n	UR                  U	5      n
UR                  U
5      nUR                  S5      nUR                  US5        OUR                  U5        SSS5        U$ ! [         a  n[        [        5      UeSnAff = f! , (       d  f       U$ = f)zSave a JPEG encoded image.jpgwbr   )Image
ImageChopsNRGBJPEG)r_   get_data_create_unique_image_nameopenr	   rg   PILrp   rq   ImportErrorPIL_ERROR_MESSAGEr   invertconvertsaver7   )r<   r[   rE   rj   rW   r   rp   rq   errifpimginvertedrgb_imgs                r   rb   ImageWriter._save_jpeg   s    ||$$&33E6B
$"e&6&66B5 dmjjo%,,S1"**51R(   # B%&78cAB	  s0   C'CA"C'
C$CC$$C''
C6c                 ^   UR                   R                  5       nU R                  US5      u  p4[        US5       n SSKJn  [        U5      nUR                  U5      n	U	R                  US5        SSS5        U$ ! [         a  n[        [        5      UeSnAff = f! , (       d  f       U$ = f)zSave a JPEG 2000 encoded imagez.jp2ro   r   )rp   NJPEG2000)
r_   rt   ru   rv   rw   rp   rx   ry   r   r|   )
r<   r[   rE   rj   rW   r   rp   r}   r~   rA   s
             r   rc   ImageWriter._save_jpeg2000   s    ||$$&33E6B
$>% $-C

3AFF2z"    >!"34#=>  s.   BA;.B;
BBBB
B,c                    U R                  US5      u  p#[        US5       n[        5       n/ nUR                  R	                  5       nU H3  u  pU[
        ;   d  M  UR                  U	S   R                  5       5        M5     [        U5      S:  a  Sn
[        U
5      e[        U5      S:X  a1  UR                  US   R                  5       R                  S5      5        UR                  UR                  R                  5       5        UR                  S5        [        U5      nUR                  5       n[!        U5      nUR#                  U5        SSS5        U$ ! , (       d  f       U$ = f)	zSave a JBIG2 encoded imagez.jb2ro   JBIG2Globalsr$   zWThere should never be more than one JBIG2Globals associated with a JBIG2 embedded imager      
N)ru   rv   r   r_   r`   r   appendresolver5   r   r7   rt   rstriprG   r   get_segmentsr   
write_file)r<   r[   rj   rW   r   input_streamglobal_streamsri   filter_nameparamsmsgreadersegmentswriters                 r   re   ImageWriter._save_jbig2   sA   33E6B
$"9LNll..0G'.#"77"))&*@*H*H*JK (/ >"Q&=  $C((>"a'"">!#4#=#=#?#F#Fu#MNu||4467a &|4F**,H&r*Fh'/ 0 1 0 s   6EC3E
E'r!   r"   bytes_per_liner    c           	      $   U R                  US5      u  pg[        US5       n[        XX#5      n	UR                  R	                  5       n
Sn[        U5       H  nU	R                  XXU-    5        X-  nM     SSS5        U$ ! , (       d  f       U$ = f)zSave a BMP encoded imagez.bmpro   r   N)ru   rv   r   r_   rt   r8   rH   )r<   r[   r!   r"   r   r    rj   rW   r   bmprE   rA   rD   s                r   rf   ImageWriter._save_bmp   s     33E6B
$Be4C<<((*DA6]qq~+=">?# #	    s   AB  
Bc                    U R                  US5      u  p#UR                  u  pE[        UR                  R	                  5       5      U-  U-  UR
                  S-  -  n[        US5       n SSKJnJ	n	  UR
                  S:X  a  SnOJUR
                  S:X  a	  US:X  a  S	nO1UR
                  S:X  a	  US
:X  a  SnOUR
                  S:X  a  US:X  a  SnUR                  WUR                  UR                  R	                  5       S5      nUS	:X  a  U	R                  U5      nUR                  U5        SSS5        U$ ! [         a  n
[        [        5      U
eSn
A
ff = f! , (       d  f       U$ = f)z*Save an image without encoding, just bytesrn   r&   ro   r   )rp   ImageOpsNr$   1Lr   rr   r   CMYKraw)ru   r^   r5   r_   rt   r    rv   rw   rp   r   rx   ry   	frombytesrz   r|   )r<   r[   rj   rW   r!   r"   channelsr   rp   r   r}   moder   s                r   ra   ImageWriter._save_bytes   s<   33E6B
u||,,./%7&@EJJQRNS$> zzQqX]qX]qX]//$u||7L7L7NPUVCs{ooc*HHRL/ 2 '  >!"34#=> 2 s1   (E*D72B;E7
EEEE
E(c                 ,   SUR                    SUR                  S    SUR                  S    S3nU R                  X5      u  p4[        US5       nUR	                  UR
                  R                  5       5        SSS5        U$ ! , (       d  f       U$ = f)z#Save an image with unknown encoding.r   r   r$   z.imgro   N)r    r^   ru   rv   r7   r_   rt   )r<   r[   extrj   rW   r   s         r   rh   ImageWriter._save_raw  s    %**Qu}}Q/0%--2B1C4H33E?
$HHU\\**,-  s   *B
Bc                 f    U R                   R                  5       nU H  u  p#U[        ;   d  M    g   g)NTF)r_   r`   r   )r[   ri   r   _paramss       r   rd   ImageWriter._is_jbig2_iamge  s2    ,,**,$+ K33 %, r   r   c                    UR                   U-   n[        R                  R                  U R                  U5      nSn[        R                  R                  U5      (       ah  UR                    SU U 3n[        R                  R                  U R                  U5      nUS-  n[        R                  R                  U5      (       a  Mh  X44$ )Nr   r   r$   )rj   rV   rW   joinrT   rX   )r<   r[   r   rj   rW   	img_indexs         r   ru   %ImageWriter._create_unique_image_name  s    zzCww||DKK.	ggnnT""jj\9+cU3D77<<T2DNI ggnnT"" zr   )rT   )rJ   rK   rL   rM   __doc__r6   rB   r   rk   rb   rc   re   rN   rf   ra   rh   staticmethodboolrd   tupleru   rP   r   r   r   rR   rR   _   s   
%s %t %
'' 'c 'R C ,G  ( S :  	
   
& S @w 3  w 4  w S U3PS8_ r   rR   )rV   os.pathr3   ior   typingr   r   pdfminer.jbig2r   r   pdfminer.layoutr   pdfminer.pdfcolorr	   r
   r   r   r   pdfminer.pdfexceptionsr   pdfminer.pdftypesr   r   r   r   ry   rN   r   r   rR   r   r   r   <module>r      sg    	    $ ? #  1 / s s 9 9xG Gr   