B ] @sddlmZmZmZmZddlmZdZddZddZ d d Z d d Z d dZ ee e e e gZ GdddeZGdddeZdS))logpisinsqrt)o8g|=cCsR||kr"|tkrdSd||Sn,||}d|}|tkr>dSdd||SdS)Ngg?g?)EPSILON)middleposr 6/tmp/pip-build-ktz6qwqq/Pillow/PIL/GimpGradientFile.pylinearsr cCs|tdtt|tS)Ng?)rmaxr)r r r r r curved,srcCs$tt dtt||ddS)Ng@g?)rrr )r r r r r sine0srcCstdt||ddS)Ng?)rr )r r r r r sphere_increasing4srcCsdtdt||dS)Ng?r)rr )r r r r r sphere_decreasing8src@seZdZdZdddZdS) GradientFileNcCszg}d}|j|\}}}}}} xJt|D]<} | t|d} x*|| krj|d7}|j|\}}}}}} qBW||} | tkr| dd} n| ||| | || } ttd|d|d| |dd}ttd|d|d| |dd}ttd|d|d| |dd}ttd|d|d| |dd}|||||q*Wd|dfS) Nrrg?rZRGBA)gradientrangefloatrrintappendjoin)selfentriesZpaletteixx0x1xmrgb0rgb1segmentixwZscalergbar r r getpaletteCs$  ,,,,zGradientFile.getpalette)r)__name__ __module__ __qualname__rr/r r r r r?src@seZdZddZdS)GimpGradientFilec Cs|dddkrtd|}|dr:|}t|}g}xt|D]}|}dd|ddD}|d|d }} |d } |d d } |d d} tt|d} t|d }|dkrtd| || | | | | fqPW||_ dS)N s GIMP Gradientznot a GIMP gradient filesName: cSsg|] }t|qSr )r).0r)r r r |sz-GimpGradientFile.__init__.. rrrr zcannot handle HSV colour space) readline SyntaxError startswithstriprrsplitSEGMENTSIOErrorrr)rfplinecountrr(sr*r"r#r$r%r&r'Zcspacer r r __init__js(      zGimpGradientFile.__init__N)r0r1r2rEr r r r r3isr3N)mathrrrr_binaryrrr rrrrr?objectrr3r r r r s *