3

Z                 @   s   d dl mZmZmZmZ ddlmZ dZdd Zdd Z	d	d
 Z
dd Zdd Zee	e
eegZG dd deZG dd deZdS )    )pilogsinsqrt   )o8g|=c             C   sR   || kr"| t k rdS d| |  S n,||  }d|  } | t k r>dS dd| |   S d S )Ng        g      ?g      ?)EPSILON)middlepos r   6/usr/lib/python3/dist-packages/PIL/GimpGradientFile.pylinear   s    r   c             C   s   |t dt t| t  S )Ng      ?)r   maxr   )r	   r
   r   r   r   curved+   s    r   c             C   s$   t t d tt| |  d d S )Ng       @g      ?)r   r   r   )r	   r
   r   r   r   sine/   s    r   c             C   s   t dt| |d d  S )Ng      ?   )r   r   )r	   r
   r   r   r   sphere_increasing3   s    r   c             C   s   dt dt| |d   S )Ng      ?r   )r   r   )r	   r
   r   r   r   sphere_decreasing7   s    r   c               @   s   e Zd ZdZdddZdS )GradientFileN   c             C   sz  g }d}| j | \}}}}}}	xJt|D ]<}
|
t|d  }x*||k rj|d7 }| j | \}}}}}}	qBW || }|tk r|	dd}n|	|| | || | }ttd|d |d  | |d   d }ttd|d |d  | |d   d }ttd|d |d  | |d   d }ttd|d |d  | |d   d }|j|| | |  q*W dj|dfS )	Nr   r   g      ?   r          ZRGBA)gradientrangefloatr   r   intappendjoin)selfZentriesZpaletteZixx0x1xmrgb0rgb1segmentixwZscalergbar   r   r   
getpaletteB   s$    
,,,,zGradientFile.getpalette)r   )__name__
__module____qualname__r   r-   r   r   r   r   r   >   s   r   c               @   s   e Zd Zdd ZdS )GimpGradientFilec             C   s   |j  d d dkrtd|j  }|jdr:|j  j }t|}g }xt|D ]}|j  j }dd |d d D }|d |d	  }}	|d
 }
|dd }|dd }tt|d  }t|d }|dkrtd|j	||	|
|||f qPW || _
d S )N   s   GIMP Gradientznot a GIMP gradient files   Name: c             S   s   g | ]}t |qS r   )r   ).0r'   r   r   r   
<listcomp>{   s    z-GimpGradientFile.__init__.<locals>.<listcomp>   r   r   r   r         zcannot handle HSV colour space)readlineSyntaxError
startswithstripr   r   splitSEGMENTSIOErrorr   r   )r   fplinecountr   r&   sr(   r    r!   r"   r#   r$   r%   Zcspacer   r   r   __init__i   s(    
zGimpGradientFile.__init__N)r.   r/   r0   rC   r   r   r   r   r1   g   s   r1   N)Zmathr   r   r   r   Z_binaryr   r   r   r   r   r   r   r=   objectr   r1   r   r   r   r   <module>   s   )