Ë
    /æj¥  ã                  ó  — d dl mZ ddlmZ dd„Zdd„Zdd„Zdd„Zdd„Zdd	„Z	dd
„Z
dd„Zdd„Zdd„Zdd„Z	 d	 	 	 	 	 	 	 	 	 dd„Z	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 d d„Zd!d"d„Zy)#é    )Úannotationsé   )ÚImagec                óD   — t        j                  d| j                  |«      S )z'Fill a channel with a given gray level.ÚL)r   ÚnewÚsize)ÚimageÚvalues     úQ/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/PIL/ImageChops.pyÚconstantr      s   € ô �9‰9�S˜%Ÿ*™* eÓ,Ð,ó    c                ó"   — | j                  «       S )z:Copy a channel. Alias for :py:meth:`PIL.Image.Image.copy`.)Úcopy©r
   s    r   Ú	duplicater      s   € ð �:‰:‹<Ðr   c                ót   — | j                  «        | j                  | j                  j                  «       «      S )zB
    Invert an image (channel). ::

        out = MAX - image
    )ÚloadÚ_newÚimÚchop_invertr   s    r   Úinvertr   #   s)   € ð 
‡J�J„LØ�:‰:�e—h‘h×*Ñ*Ó,Ó-Ð-r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )z“
    Compares the two images, pixel by pixel, and returns a new image containing
    the lighter values. ::

        out = max(image1, image2)
    )r   r   r   Úchop_lighter©Úimage1Úimage2s     r   Úlighterr   .   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×-Ñ-¨f¯i©iÓ8Ó9Ð9r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )z’
    Compares the two images, pixel by pixel, and returns a new image containing
    the darker values. ::

        out = min(image1, image2)
    )r   r   r   Úchop_darkerr   s     r   Údarkerr!   ;   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×,Ñ,¨V¯Y©YÓ7Ó8Ð8r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )zˆ
    Returns the absolute value of the pixel-by-pixel difference between the two
    images. ::

        out = abs(image1 - image2)
    )r   r   r   Úchop_differencer   s     r   Ú
differencer$   H   ó8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×0Ñ0°·±Ó;Ó<Ð<r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )zó
    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
    )r   r   r   Úchop_multiplyr   s     r   Úmultiplyr(   U   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×.Ñ.¨v¯y©yÓ9Ó:Ð:r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )z€
    Superimposes two inverted images on top of each other. ::

        out = MAX - ((MAX - image1) * (MAX - image2) / MAX)
    )r   r   r   Úchop_screenr   s     r   Úscreenr+   d   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×,Ñ,¨V¯Y©YÓ7Ó8Ð8r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )zU
    Superimposes two images on top of each other using the Soft Light algorithm
    )r   r   r   Úchop_soft_lightr   s     r   Ú
soft_lightr.   p   ó8   € ð
 ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×0Ñ0°·±Ó;Ó<Ð<r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )zU
    Superimposes two images on top of each other using the Hard Light algorithm
    )r   r   r   Úchop_hard_lightr   s     r   Ú
hard_lightr2   z   r/   r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )zR
    Superimposes two images on top of each other using the Overlay algorithm
    )r   r   r   Úchop_overlayr   s     r   Úoverlayr5   „   s8   € ð
 ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×-Ñ-¨f¯i©iÓ8Ó9Ð9r   c                ó®   — | j                  «        |j                  «        | j                  | j                  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)
    )r   r   r   Úchop_add©r   r   ÚscaleÚoffsets       r   Úaddr;   Ž   s<   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×)Ñ)¨&¯)©)°U¸FÓCÓDÐDr   c                ó®   — | j                  «        |j                  «        | j                  | j                  j                  |j                  ||«      «      S )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)
    )r   r   r   Úchop_subtractr8   s       r   Úsubtractr>   Ÿ   s<   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×.Ñ.¨v¯y©y¸%ÀÓHÓIÐIr   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )zbAdd two images, without clipping the result.

    ::

        out = ((image1 + image2) % MAX)
    )r   r   r   Úchop_add_modulor   s     r   Ú
add_modulorA   °   r%   r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )zgSubtract two images, without clipping the result.

    ::

        out = ((image1 - image2) % MAX)
    )r   r   r   Úchop_subtract_modulor   s     r   Úsubtract_modulorD   ½   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×5Ñ5°f·i±iÓ@ÓAÐAr   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )a@  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)
    )r   r   r   Úchop_andr   s     r   Úlogical_andrG   Ê   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×)Ñ)¨&¯)©)Ó4Ó5Ð5r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )z|Logical OR between two images.

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

        out = ((image1 or image2) % MAX)
    )r   r   r   Úchop_orr   s     r   Ú
logical_orrJ   Ú   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×(Ñ(¨¯©Ó3Ó4Ð4r   c                óª   — | j                  «        |j                  «        | j                  | j                  j                  |j                  «      «      S )z‰Logical XOR between two images.

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

        out = ((bool(image1) != bool(image2)) % MAX)
    )r   r   r   Úchop_xorr   s     r   Úlogical_xorrM   ç   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×)Ñ)¨&¯)©)Ó4Ó5Ð5r   c                ó0   — t        j                  | ||«      S )z`Blend images using constant transparency weight.

    Alias for :py:func:`PIL.Image.blend`.
    )r   Úblend)r   r   Úalphas      r   rO   rO   ô   s   € ô �;‰;�v˜v uÓ-Ð-r   c                ó0   — t        j                  | ||«      S )z]Create composite using transparency mask.

    Alias for :py:func:`PIL.Image.composite`.
    )r   Ú	composite)r   r   Úmasks      r   rR   rR   ý   s   € ô �?‰?˜6 6¨4Ó0Ð0r   Nc                ó€   — |€|}| j                  «        | j                  | j                  j                  ||«      «      S )at  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.
    )r   r   r   r:   )r
   ÚxoffsetÚyoffsets      r   r:   r:     s5   € ð €ØˆØ	‡J�J„LØ�:‰:�e—h‘h—o‘o g¨wÓ7Ó8Ð8r   )r
   úImage.Imager   ÚintÚreturnrW   )r
   rW   rY   rW   )r   rW   r   rW   rY   rW   )g      ð?r   )
r   rW   r   rW   r9   Úfloatr:   rZ   rY   rW   )r   rW   r   rW   rP   rZ   rY   rW   )r   rW   r   rW   rS   rW   rY   rW   )N)r
   rW   rU   rX   rV   z
int | NonerY   rW   )Ú
__future__r   Ú r   r   r   r   r   r!   r$   r(   r+   r.   r2   r5   r;   r>   rA   rD   rG   rJ   rM   rO   rR   r:   © r   r   ú<module>r^      s  ðõ$ #å ó-óó.ó
:ó
9ó
=ó;ó	9ó=ó=ó:ð STðEØðEØ!,ðEØ5:ðEØJOðEàóEð$ STðJØðJØ!,ðJØ5:ðJØJOðJàóJó"
=ó
Bó6ó 
5ó
6ó.ð1Øð1Ø!,ð1Ø4?ð1àó1õ9r   