
    Ng1
                         d Z ddlmZ ddlmZ ddlmZ dedeej                 fdZdedeej                 fdZ	dedeej                 fd	Z
dedeej                 fd
ZdS )z%
    pdf2image custom buffer parsers
    )BytesIO)List)Imagedatareturnc           
      L   g }d}|t          |           k     rt          | ||dz                                d          dd                   \  }}}t          |                    d                    \  }}t          |          t          |          z   t          |          z   dz   t          |          t          |          z  dz  z   }|                    t          j        t          | |||z                                           ||z  }|t          |           k     |S )zParse PPM file bytes to Pillow Image

    :param data: pdftoppm/pdftocairo output bytes
    :type data: bytes
    :return: List of PPM images parsed from the output
    :rtype: List[Image.Image]
    r   (      
       lentuplesplitintappendr   openr   )	r   imagesindexcodesizergbsize_xsize_y	file_sizes	            M/var/www/html/ai-engine/env/lib/python3.11/site-packages/pdf2image/parsers.pyparse_buffer_to_ppmr      s    FE
#d))

UURZ%7 8 > >u E Eac JKKdCtzz$//00IID		)CHH4q83v;;V;TWX;XX	ejeei6G.G)H!I!IJJKKK #d))

 M    c           
      F   g }d}|t          |           k     rt          | ||dz                                d          dd                   \  }}}t          |                    d                    \  }}t          |          t          |          z   t          |          z   dz   t          |          t          |          z  z   }|                    t          j        t          | |||z                                           ||z  }|t          |           k     |S )zParse PGM file bytes to Pillow Image

    :param data: pdftoppm/pdftocairo output bytes
    :type data: bytes
    :return: List of PGM images parsed from the output
    :rtype: List[Image.Image]
    r   r	   r
   r   r   r   )	r   r   r   r   r   maxvalr   r   r   s	            r   parse_buffer_to_pgmr!   "   s	    FE
#d))

"4
(:#;#A#A%#H#H1#MNNdFtzz$//00IID		)CKK7!;c&kkCPVKK>WW	ejeei6G.G)H!I!IJJKKK #d))

 Mr   c                 P    d |                      d          dd         D             S )zParse JPEG file bytes to Pillow Image

    :param data: pdftoppm/pdftocairo output bytes
    :type data: bytes
    :return: List of JPEG images parsed from the output
    :rtype: List[Image.Image]
    c                 V    g | ]&}t          j        t          |d z                       'S )   )r   r   r   ).0
image_datas     r   
<listcomp>z(parse_buffer_to_jpeg.<locals>.<listcomp>B   s?        	
7:34455  r   r$   N)r   )r   s    r   parse_buffer_to_jpegr)   9   s;     **[11RC
   r   c           
      :   g }d}d}t          |           }||k     r| ||dz            dk    rc|dz   |k    s| |dz   |dz            dk    rF|                    t          j        t	          | ||dz                                           |dz   }|}|dz  }||k     |S )	zParse PNG file bytes to Pillow Image

    :param data: pdftoppm/pdftocairo output bytes
    :type data: bytes
    :return: List of PNG images parsed from the output
    :rtype: List[Image.Image]
    r      s   IEND   	      s   PNG   )r   r   r   r   r   )r   r   c1c2data_lens        r   parse_buffer_to_pngr3   J   s     F	
B	
B4yyH
x--R!V''Fh$rAvR'7"8F"B"BMM%*WT"rAv+->%?%?@@AAAaBB
a x-- Mr   N)__doc__ior   typingr   PILr   bytesr   r!   r)   r3    r   r   <module>r:      s                      e U[(9    .e U[(9    .u ek):    "e U[(9      r   