a
    Ù
þd  ã                   @   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 g d	¢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u r<t| dƒr<|  ¡  d¡r<d}t| ƒ&} t	d| fd|i|¤Ž}W d  ƒ n1 sp0    Y  t|dƒsˆ|S |j
dkrì|jd	 d
vrÊ|jd d
v rÊt |d	d¡}t |dd¡}|rì|jd dkrät|ƒ}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_argsÚimg© r'   úW/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/skimage/io/_io.pyr      s$    
4

r   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
    ÿÿr   c                 K   s˜   t | tjƒrt|  ¡ ƒ} |du r<t| dƒr<|  ¡  d¡r<d}|jt	krft
| › ddd | d¡d	 }|r€t|ƒr€t
| › 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    

þr   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    
r   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    r   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    r   )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  ÿ

-

