
 X                 @   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 Gd d   d e  Z Gd d   d e  Z d S)    )pilogsinsqrt)o8g|=c             C   sc   | |  k r+ |  t  k  r d Sd | |  Sn4 | |  } d |  }  |  t  k  rO d Sd d | |  Sd  S)Ng        g      ?g      ?)EPSILON)middlepos r
   Q/home/ubuntu/projects/ifolica/lib/python3.4/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 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   s  g  } d } |  j  | \ } } } } } }	 xt |  D]~}
 |
 t | d  } x9 | | k  r | d 7} |  j  | \ } } } } } }	 qU W| | } | 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 | | | |  q8 Wd j |  d f S)	Nr      g      ?   r          ZRGBA)gradientrangefloatr   r   intappendjoin)selfentriesZpaletteixx0x1xmrgb0rgb1segmentixwZscalergbar
   r
   r   
getpaletteA   s$    
#
2222zGradientFile.getpalette)__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   n  | j    } | j d  r[ | j    j   } n  t |  } g  } x t |  D] } | j    j   } d d   | d  d  D } | d | d	 } }	 | d
 }
 | d d  } | d d  } t t | d  } t | d  } | d k r-t d   n  | j	 | |	 |
 | | | f  qz W| |  _
 d  S)N   s   GIMP Gradientznot a GIMP gradient files   Name: c             S   s   g  |  ] } t  |   q Sr
   )r   ).0r)   r
   r
   r   
<listcomp>z   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__h   s(    
#zGimpGradientFile.__init__N)r0   r1   r2   rE   r
   r
   r
   r   r3   f   s   r3   N)mathr   r   r   r   ZPIL._binaryr   r   r   r   r   r   r   r?   objectr   r3   r
   r
   r
   r   <module>   s   ")