U
    Ú²g7  ã                   @  sr   d dl mZ ddlmZmZmZ G dd„ dƒZG dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZ	G dd„ deƒZ
dS )é    )Úannotationsé   )ÚImageÚImageFilterÚ	ImageStatc                   @  s.   e Zd ZU ded< ded< dddœdd„ZdS )	Ú_EnhanceúImage.ImageÚimageÚ
degenerateÚfloat)ÚfactorÚreturnc                 C  s   t  | j| j|¡S )aµ  
        Returns an enhanced image.

        :param factor: A floating point value controlling the enhancement.
                       Factor 1.0 always returns a copy of the original image,
                       lower factors mean less color (brightness, contrast,
                       etc), and higher values more. There are no restrictions
                       on this value.
        :rtype: :py:class:`~PIL.Image.Image`
        )r   Zblendr
   r	   )Úselfr   © r   ú4/tmp/pip-unpacked-wheel-xela2va7/PIL/ImageEnhance.pyÚenhance   s    z_Enhance.enhanceN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   r   r   r   r   r      s   
r   c                   @  s    e Zd ZdZdddœdd„ZdS )ÚColora  Adjust image color balance.

    This class can be used to adjust the colour balance of an image, in
    a manner similar to the controls on a colour TV set. An enhancement
    factor of 0.0 gives a black and white image. A factor of 1.0 gives
    the original image.
    r   ÚNone©r	   r   c                 C  s8   || _ d| _d| ¡ krd| _| | j¡ |j¡| _d S )NÚLÚAZLA)r	   Zintermediate_modeÚgetbandsÚconvertÚmoder
   ©r   r	   r   r   r   Ú__init__4   s
    zColor.__init__N©r   r   r   Ú__doc__r   r   r   r   r   r   +   s   r   c                   @  s    e Zd ZdZdddœdd„ZdS )ÚContrastzòAdjust image contrast.

    This class can be used to control the contrast of an image, similar
    to the contrast control on a TV set. An enhancement factor of 0.0
    gives a solid gray image. A factor of 1.0 gives the original image.
    r   r   r   c                 C  s`   || _ tt | d¡¡jd d ƒ}t d|j|¡ |j	¡| _
d| ¡ kr\| j
 | d¡¡ d S )Nr   r   g      à?r   )r	   Úintr   ZStatr   Úmeanr   ÚnewÚsizer   r
   r   ÚputalphaÚ
getchannel)r   r	   r$   r   r   r   r   E   s
    zContrast.__init__Nr    r   r   r   r   r"   =   s   r"   c                   @  s    e Zd ZdZdddœdd„ZdS )Ú
BrightnesszÅAdjust image brightness.

    This class can be used to control the brightness of an image.  An
    enhancement factor of 0.0 gives a black image. A factor of 1.0 gives the
    original image.
    r   r   r   c                 C  s<   || _ t |j|jd¡| _d| ¡ kr8| j | d¡¡ d S )Nr   r   )	r	   r   r%   r   r&   r
   r   r'   r(   r   r   r   r   r   V   s    zBrightness.__init__Nr    r   r   r   r   r)   N   s   r)   c                   @  s    e Zd ZdZdddœdd„ZdS )Ú	SharpnesszðAdjust image sharpness.

    This class can be used to adjust the sharpness of an image. An
    enhancement factor of 0.0 gives a blurred image, a factor of 1.0 gives the
    original image, and a factor of 2.0 gives a sharpened image.
    r   r   r   c                 C  s6   || _ | tj¡| _d| ¡ kr2| j | d¡¡ d S )Nr   )r	   Úfilterr   ZSMOOTHr
   r   r'   r(   r   r   r   r   r   f   s    zSharpness.__init__Nr    r   r   r   r   r*   ^   s   r*   N)Ú
__future__r   Ú r   r   r   r   r   r"   r)   r*   r   r   r   r   Ú<module>   s   