o
    õ·iA   ã                   @  sø   d dl mZ ddlmZ d>d	d
„Zd?dd„Zd?dd„Zd@dd„Zd@dd„Zd@dd„Z	d@dd„Z
d@dd„Zd@dd„Zd@dd„Zd@dd „Z	 dAdBd%d&„Z	 dAdBd'd(„Zd@d)d*„Zd@d+d,„Zd@d-d.„Zd@d/d0„Zd@d1d2„ZdCd4d5„ZdDd7d8„ZdEdFd=d$„Zd9S )Gé    )Úannotationsé   )ÚImageÚimageúImage.ImageÚvalueÚintÚreturnc                 C  s   t  d| j|¡S )zVFill a channel with a given gray level.

    :rtype: :py:class:`~PIL.Image.Image`
    ÚLN)r   ÚnewÚsize)r   r   © r   úTC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\PIL/ImageChops.pyÚconstant   s   r   c                 C  s   |   ¡ S )ziCopy a channel. Alias for :py:meth:`PIL.Image.Image.copy`.

    :rtype: :py:class:`~PIL.Image.Image`
    N)Úcopy©r   r   r   r   Ú	duplicate    s   r   c                 C  s   |   ¡  |  | j ¡ ¡S )zl
    Invert an image (channel). ::

        out = MAX - image

    :rtype: :py:class:`~PIL.Image.Image`
    N)ÚloadÚ_newÚimZchop_invertr   r   r   r   Úinvert)   s   	r   Úimage1Úimage2c                 C  ó$   |   ¡  |  ¡  |  | j |j¡¡S )z½
    Compares the two images, pixel by pixel, and returns a new image containing
    the lighter values. ::

        out = max(image1, image2)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_lighter©r   r   r   r   r   Úlighter6   ó   
r   c                 C  r   )z¼
    Compares the two images, pixel by pixel, and returns a new image containing
    the darker values. ::

        out = min(image1, image2)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_darkerr   r   r   r   ÚdarkerE   r   r   c                 C  r   )z²
    Returns the absolute value of the pixel-by-pixel difference between the two
    images. ::

        out = abs(image1 - image2)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_differencer   r   r   r   Ú
differenceT   r   r   c                 C  r   )a  
    Superimposes two images on top of each other.

    If you multiply an image with a solid black image, the result is black. If
    you multiply with a solid white image, the image is unaffected. ::

        out = image1 * image2 / MAX

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_multiplyr   r   r   r   Úmultiplyc   s   r   c                 C  r   )zª
    Superimposes two inverted images on top of each other. ::

        out = MAX - ((MAX - image1) * (MAX - image2) / MAX)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_screenr   r   r   r   Úscreent   s   	r    c                 C  r   )z
    Superimposes two images on top of each other using the Soft Light algorithm

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_soft_lightr   r   r   r   Ú
soft_light‚   ó   r!   c                 C  r   )z
    Superimposes two images on top of each other using the Hard Light algorithm

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_hard_lightr   r   r   r   Ú
hard_lightŽ   r"   r#   c                 C  r   )z|
    Superimposes two images on top of each other using the Overlay algorithm

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_overlayr   r   r   r   Úoverlayš   r"   r$   ç      ð?ÚscaleÚfloatÚoffsetc                 C  ó(   |   ¡  |  ¡  |  | j |j||¡¡S )zé
    Adds two images, dividing the result by scale and adding the
    offset. If omitted, scale defaults to 1.0, and offset to 0.0. ::

        out = ((image1 + image2) / scale + offset)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_add©r   r   r&   r(   r   r   r   Úadd¦   ó   r+   c                 C  r)   )zî
    Subtracts two images, dividing the result by scale and adding the offset.
    If omitted, scale defaults to 1.0, and offset to 0.0. ::

        out = ((image1 - image2) / scale + offset)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_subtractr*   r   r   r   Úsubtract·   r,   r-   c                 C  r   )z‡Add two images, without clipping the result. ::

        out = ((image1 + image2) % MAX)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_add_modulor   r   r   r   Ú
add_moduloÈ   ó   r.   c                 C  r   )zŒSubtract two images, without clipping the result. ::

        out = ((image1 - image2) % MAX)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_subtract_modulor   r   r   r   Úsubtract_moduloÕ   r/   r0   c                 C  r   )aj  Logical AND between two images.

    Both of the images must have mode "1". If you would like to perform a
    logical AND on an image with a mode other than "1", try
    :py:meth:`~PIL.ImageChops.multiply` instead, using a black-and-white mask
    as the second image. ::

        out = ((image1 and image2) % MAX)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_andr   r   r   r   Úlogical_andâ   s   r1   c                 C  r   )z¦Logical OR between two images.

    Both of the images must have mode "1". ::

        out = ((image1 or image2) % MAX)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_orr   r   r   r   Ú
logical_orô   r   r2   c                 C  r   )z³Logical XOR between two images.

    Both of the images must have mode "1". ::

        out = ((bool(image1) != bool(image2)) % MAX)

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   Zchop_xorr   r   r   r   Úlogical_xor  r   r3   Úalphac                 C  ó   t  | ||¡S )z‰Blend images using constant transparency weight. Alias for
    :py:func:`PIL.Image.blend`.

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   Úblend)r   r   r4   r   r   r   r6     s   r6   Úmaskc                 C  r5   )z†Create composite using transparency mask. Alias for
    :py:func:`PIL.Image.composite`.

    :rtype: :py:class:`~PIL.Image.Image`
    N)r   Ú	composite)r   r   r7   r   r   r   r8     s   	r8   NÚxoffsetÚyoffsetú
int | Nonec                 C  s(   |du r|}|   ¡  |  | j ||¡¡S )a�  Returns a copy of the image where data has been offset by the given
    distances. Data wraps around the edges. If ``yoffset`` is omitted, it
    is assumed to be equal to ``xoffset``.

    :param image: Input image.
    :param xoffset: The horizontal distance.
    :param yoffset: The vertical distance.  If omitted, both
        distances are set to the same value.
    :rtype: :py:class:`~PIL.Image.Image`
    N)r   r   r   r(   )r   r9   r:   r   r   r   r(   (  s   )r   r   r   r   r	   r   )r   r   r	   r   )r   r   r   r   r	   r   )r%   r   )
r   r   r   r   r&   r'   r(   r'   r	   r   )r   r   r   r   r4   r'   r	   r   )r   r   r   r   r7   r   r	   r   )N)r   r   r9   r   r:   r;   r	   r   )Ú
__future__r   Ú r   r   r   r   r   r   r   r   r    r!   r#   r$   r+   r-   r.   r0   r1   r2   r3   r6   r8   r(   r   r   r   r   Ú<module>   s2   

	
	







ÿÿ







