
    0-Ph                     N    d Z ddlmZmZ dad ZdZedz   Z G d de          ZdS )	an   Read/Write images using SimpleITK.

Backend: `Insight Toolkit <https://itk.org/>`_

.. note::
    To use this plugin you have to install its backend::

        pip install imageio[itk]

The ItkFormat uses the ITK or SimpleITK library to support a range of
ITK-related formats. It also supports a few common formats (e.g. PNG and JPEG).

Parameters
----------
None

   )Format
has_moduleNc                      	 dd l at          j        at          j        anK# t          $ r> 	 dd lat          j        at          j	        an# t          $ r t          d          w xY wY nw xY wt          S )N    zitk could not be found. Please try   python -m pip install itk or   python -m pip install simpleitk or refer to   https://itkpythonpackage.readthedocs.io/ for further instructions.)
itk_itkimread_read_functionimwrite_write_functionImportError	SimpleITK	ReadImage
WriteImage     Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/imageio/plugins/simpleitk.pyload_libr      s    ,   	$$$$!^N"oOO 
	 
	 
	,	 	 	
	 O" Ks&    
A'AA'A!!A'&A')z.giplz.iplz.mhaz.mhdz.nhdrniahdrz.nrrdz.niiz.nii.gzz.imgz.img.gzz.vtkhdf5lsmmncmnc2mghr   pic)	z.bmpz.jpegz.jpgz.pngz.tiffz.tifz.dicomz.dcmz.gdcmc                   j    e Zd ZdZd Zd Z G d dej                  Z G d dej                  ZdS )		ItkFormatz$See :mod:`imageio.plugins.simpleitk`c                 ~    |j         t          v rdS t          d          st          d          r|j         t          v S d S NTzitk.ImageIOBaser   	extensionITK_FORMATSr   ALL_FORMATSselfrequests     r   	_can_readzItkFormat._can_read]   sO    
 ++4'(( 	4J{,C,C 	4$33	4 	4r   c                 ~    |j         t          v rdS t          d          st          d          r|j         t          v S d S r    r!   r%   s     r   
_can_writezItkFormat._can_writeg   sM    ++4'(( 	4J{,C,C 	4$33	4 	4r   c                   .    e Zd ZddZd Zd Zd Zd ZdS )ItkFormat.ReaderNc                     t           st                       d}|||fz  }|||fz  }t          | j                                        g|R  | _        d S )Nr   )r   r   r
   r'   get_local_filename_img)r&   
pixel_typefallback_onlykwargsargss        r   _openzItkFormat.Reader._openp   sf     


D%% ,],,D&t|'F'F'H'HP4PPPDIIIr   c                     dS )N   r   r&   s    r   _get_lengthzItkFormat.Reader._get_lengthz   s    1r   c                     d S Nr   r7   s    r   _closezItkFormat.Reader._close}       Dr   c                 r    |dk    rd}t          |          t                              | j                  i fS )Nr   z.Index out of range while reading from itk file)
IndexErrorr   GetArrayFromImager/   r&   index	error_msgs      r   	_get_datazItkFormat.Reader._get_data   s;    zzL	 +++ ))$)44b88r   c                 $    d}t          |          Nz5The itk plugin does not support meta data, currently.RuntimeErrorr@   s      r   _get_meta_datazItkFormat.Reader._get_meta_data       OIy)))r   )NN)__name__
__module____qualname__r4   r8   r;   rC   rH   r   r   r   Readerr,   o   sh        	Q 	Q 	Q 	Q	 	 		 	 		9 	9 	9	* 	* 	* 	* 	*r   rM   c                   &    e Zd Zd Zd Zd Zd ZdS )ItkFormat.Writerc                 4    t           st                       d S d S r:   )r   r   r7   s    r   r4   zItkFormat.Writer._open   s!     




 r   c                     d S r:   r   r7   s    r   r;   zItkFormat.Writer._close   r<   r   c                     t                               |          }t          || j                                                   d S r:   )r   GetImageFromArrayr   r'   r.   )r&   immeta_itk_imgs       r   _append_datazItkFormat.Writer._append_data   s9    --b11HHdl&E&E&G&GHHHHHr   c                 $    d}t          |          rE   rF   )r&   rU   rB   s      r   set_meta_datazItkFormat.Writer.set_meta_data   rI   r   N)rJ   rK   rL   r4   r;   rW   rY   r   r   r   WriterrO      sS        	 	 		 	 		I 	I 	I	* 	* 	* 	* 	*r   rZ   N)	rJ   rK   rL   __doc__r(   r*   r   rM   rZ   r   r   r   r   r   Z   s        ..4 4 44 4 4* * * * * * * *>* * * * * * * * * *r   r   )	r[   corer   r   r   r   r#   r$   r   r   r   r   <module>r]      s    $ & % % % % % % %  8,  
 
B* B* B* B* B* B* B* B* B* B*r   