File: //usr/local/lib64/python3.6/site-packages/PIL/__pycache__/GimpGradientFile.cpython-36.pyc
3
Zƍh
� @ s� d Z ddlmZmZmZmZ ddlmZ dZdd� Z dd � Z
d
d� Zdd
� Zdd� Z
e e
eee
gZG dd� d�ZG dd� de�ZdS )z�
Stuff to translate curve segments to palette values (derived from
the corresponding code in GIMP, written by Federico Mena Quintero.
See the GIMP distribution for more information.)
� )�log�pi�sin�sqrt� )�o8g�����|�=c C sR || kr"| t k rdS d| | S n,|| }d| } | t k r>dS dd| | S d S )Ng g �?g �?)�EPSILON)�middle�pos� r �@/usr/local/lib64/python3.6/site-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 tt| |� �d d S )Ng @g �?)r r r
)r r
r r r �sine2 s r c C s t dt| |�d d �S )Ng �?� )r r
)r r
r r r �sphere_increasing6 s r c C s dt dt| |�d � S )Ng �?r )r r
)r r
r r r �sphere_decreasing: s r c @ s e Zd ZdZddd�ZdS )�GradientFileN� c C sv g }d}| j | \}}}}}} �xFt|�D �]8}
|
|d }x*||k rf|d7 }| j | \}}}}}} q>W || }|tk r�| dd�}
n| || | || | �}
ttd|d |d |
|d d ��}ttd|d |d |
|d d ��}ttd|d |d |
|d d ��}ttd|d |d |
|d d ��}|j|| | | � q*W dj|�dfS ) Nr r g �?� r � � ZRGBA)�gradient�ranger r �int�append�join)�self�entriesZpalette�ix�x0�x1�xm�rgb0�rgb1�segment�i�x�wZscale�r�g�b�ar r r �
getpaletteF s$
,,,,zGradientFile.getpalette)r )�__name__�
__module__�__qualname__r r. r r r r r B s r c @ s e Zd ZdZdd� ZdS )�GimpGradientFilez(File handler for GIMP's gradient format.c C s� |j � d d� dkrtd��|j � }|jd�r:|j � j� }t|�}g }x�t|�D ]�}|j � j� }dd� |d d� D �}|d |d }} |d
}
|dd� }|dd� }tt|d � }
t|d
�}|dkr�td��|j || |
|||
f� qPW || _
d S )N�
s
GIMP Gradientznot a GIMP gradient files Name: c S s g | ]}t |��qS r )�float)�.0r( r r r �
<listcomp>} s z-GimpGradientFile.__init__.<locals>.<listcomp>� r r r r � � zcannot handle HSV colour space)�readline�SyntaxError�
startswith�stripr r �split�SEGMENTS�OSErrorr r )r �fp�line�countr r'