U
    ?h                     @   s   d dl Z d dlZddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ d	d
ddddgZddd	ZdddZddd
ZdddZdddZdd ZdS )    N   )warn)is_low_contrast)rgb2grayrgba2rgbcall_plugin   )file_or_url_contextimreadimsaveimshowshowimread_collectionimshow_collectionFc              	   K   s   t | tjrt|  } |dkr<t| dr<|  dr<d}t| } t	d| fd|i|}W 5 Q R X t|dst|S |j
dkr|jd	 d
kr|jd d
krt|d	d}t|dd}|r|jd dkrt|}t|}|S )a  Load an image from file.

    Parameters
    ----------
    fname : str or pathlib.Path
        Image file name, e.g. ``test.jpg`` or URL.
    as_gray : bool, optional
        If True, convert color images to gray-scale (64-bit floats).
        Images that are already in gray-scale format are not converted.
    plugin : str, optional
        Name of plugin to use.  By default, the different plugins are
        tried (starting with imageio) until a suitable
        candidate is found.  If not given and fname is a tiff file, the
        tifffile plugin will be used.

    Other Parameters
    ----------------
    plugin_args : keywords
        Passed to the given plugin.

    Returns
    -------
    img_array : ndarray
        The different color bands/channels are stored in the
        third dimension, such that a gray-image is MxN, an
        RGB-image MxNx3 and an RGBA-image MxNx4.

    Nlowerz.tiffz.tiftifffiler   pluginndimr   )      r   )
isinstancepathlibPathstrresolvehasattrr   endswithr
   r   r   shapenpZswapaxesr   r   )fnameZas_grayr   plugin_argsZimg r&   @/var/www/html/venv/lib/python3.8/site-packages/skimage/io/_io.pyr      s$    
 

Tc                 K   s   t d| |fd|i|S )a  
    Load a collection of images.

    Parameters
    ----------
    load_pattern : str or list
        List of objects to load. These are usually filenames, but may
        vary depending on the currently active plugin.  See the docstring
        for ``ImageCollection`` for the default behaviour of this parameter.
    conserve_memory : bool, optional
        If True, never keep more than one in memory at a specific
        time.  Otherwise, images will be cached once they are loaded.

    Returns
    -------
    ic : ImageCollection
        Collection of images.

    Other Parameters
    ----------------
    plugin_args : keywords
        Passed to the given plugin.

    r   r   r   )Zload_patternZconserve_memoryr   r%   r&   r&   r'   r   G   s
    c                 K   s   t | tjrt|  } |dkr<t| dr<|  dr<d}|jt	krft
|  ddd |dd	 }|rt|rt
|  d
 td| |fd|i|S )a  Save an image to file.

    Parameters
    ----------
    fname : str or pathlib.Path
        Target filename.
    arr : ndarray of shape (M,N) or (M,N,3) or (M,N,4)
        Image data.
    plugin : str, optional
        Name of plugin to use.  By default, the different plugins are
        tried (starting with imageio) until a suitable
        candidate is found.  If not given and fname is a tiff file, the
        tifffile plugin will be used.
    check_contrast : bool, optional
        Check for low contrast and print warning (default: True).

    Other Parameters
    ----------------
    plugin_args : keywords
        Passed to the given plugin.

    Notes
    -----
    When saving a JPEG, the compression ratio may be controlled using the
    ``quality`` keyword argument which is an integer with values in [1, 100]
    where 1 is worst quality and smallest file size, and 100 is best quality
    and largest file size (default 75).  This is only available when using
    the PIL and imageio plugins.
    Nr   r   r   z~ is a boolean image: setting True to 255 and False to 0. To silence this warning, please convert the image using img_as_ubyte.r   )
stacklevelZuint8   z is a low contrast imager   r   )r   r   r   r   r   r    r   r!   Zdtypeboolr   Zastyper   r   )r$   arrr   Zcheck_contrastr%   r&   r&   r'   r   e   s    

c                 K   s.   t | trtd| |d} td| fd|i|S )a  Display an image.

    Parameters
    ----------
    arr : ndarray or str
        Image data or name of image file.
    plugin : str
        Name of plugin to use.  By default, the different plugins are
        tried (starting with imageio) until a suitable
        candidate is found.

    Other Parameters
    ----------------
    plugin_args : keywords
        Passed to the given plugin.

    r   )r   r   r   )r   r   r   )r+   r   r%   r&   r&   r'   r      s    
c                 K   s   t d| fd|i|S )ap  Display a collection of images.

    Parameters
    ----------
    ic : ImageCollection
        Collection to display.
    plugin : str
        Name of plugin to use.  By default, the different plugins are
        tried until a suitable candidate is found.

    Other Parameters
    ----------------
    plugin_args : keywords
        Passed to the given plugin.

    r   r   r   )Zicr   r%   r&   r&   r'   r      s    c                   C   s   t dS )a  Display pending images.

    Launch the event loop of the current gui plugin, and display all
    pending images, queued via `imshow`. This is required when using
    `imshow` from non-interactive scripts.

    A call to `show` will block execution of code until all windows
    have been closed.

    Examples
    --------
    >>> import skimage.io as io

    >>> rng = np.random.default_rng()
    >>> for i in range(4):
    ...     ax_im = io.imshow(rng.random((50, 50)))
    >>> io.show() # doctest: +SKIP

    Z	_app_showr   r&   r&   r&   r'   r      s    )FN)TN)NT)N)N)r   numpyr#   Z_shared.utilsr   Zexposurer   Zcolor.colorconvr   r   Zio.manage_pluginsr   utilr
   __all__r   r   r   r   r   r   r&   r&   r&   r'   <module>   s$    
7  

-

