o
    i                     @   sB  d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z zddlmZmZ eeejeedf f ed	d
ZW n eyF   i ZY nw ejdejdejdejdejdejdejdejdejdejdejdejdiZ ejejejejejejgZ!ejejejejejgZ"ejgZ#dede$fddZ%de&dede'fddZ(dS )zUse pylibjpeg <https://github.com/pydicom/pylibjpeg> to decompress encoded
*Pixel Data*.

This module is not intended to be used directly.
    )castuid)DecodeRunner)_passes_version_check)PhotometricInterpretation)get_pixel_data_decodersDecoderr	      )version)pylibjpeg>=2.0zpylibjpeg-libjpeg>=2.1)r   zpylibjpeg-openjpeg>=2.0)r   zpylibjpeg-rle>=2.0r   returnc                 C   sH   t ddsdS | tv rt ddS | tv rt ddS | tv r"t ddS dS )zLReturn ``True`` if the decoder has its dependencies met, ``False`` otherwise	pylibjpeg)r
   r   Flibjpeg)r
   r   r
   openjpegrle)r   _LIBJPEG_SYNTAXES_OPENJPEG_SYNTAXES_RLE_SYNTAXESr    r   W/mnt/sdb/aimis/docanh/lib/python3.10/site-packages/pydicom/pixels/decoders/pylibjpeg.pyis_available;   s   



r   srcrunnerc                 C   s|  |j }tt|  D ]\}}tt|| fddi|j}|tjkr(|	dd |t
v r{|jtjtjfv r<|	dtj |d|j}d|  k rMdkrVn n|	d	d n%d|  k r`d
krin n|	d	d
 nd
|  k rsdkr{n n|	d	d |tjv r|	dd |d|j}d|  k rdkrn n
|	d	d |  S d|  k rd
krn |  S |	d	d
 |  S dS )z?Return the decoded image data in `src` as a :class:`bytearray`.r   r
   planar_configuration   photometric_interpretationj2k_precisionr      bits_allocated       jls_precisionN)transfer_syntaxsorted	_DECODERSitemsr   	bytearrayoptionsr   RLELossless
set_optionr   r   PIYBR_ICTYBR_RCTRGB
get_optionbits_storedJPEGLSTransferSyntaxes)r   r   tsyntax_funcframe	precisionr   r   r   _decode_frameL   s4   

r7   N))__doc__typingr   pydicomr   pydicom.pixels.decoders.baser   pydicom.pixels.utilsr   pydicom.pixels.commonr   r+   pylibjpeg.utilsr   r	   dictUIDstrr%   ImportErrorJPEGBaseline8BitJPEGExtended12BitJPEGLosslessJPEGLosslessSV1JPEGLSLosslessJPEGLSNearLosslessJPEG2000LosslessJPEG2000HTJ2KLosslessHTJ2KLosslessRPCLHTJ2Kr)   DECODER_DEPENDENCIESr   r   r   boolr   bytesr'   r7   r   r   r   r   <module>   sV   	