
    Rff                        d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 dZ
	 d Zd Zd	 Zd
 Zd ZeeeeegZ	  G d d          Z G d de          ZdS )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.)
    )annotations)logpisinsqrt   )o8g|=c                |    || k    r| t           k     rdS d|z  | z  S || z
  }d| z
  } | t           k     rdS dd|z  | z  z   S )Ng              ?      ?)EPSILONmiddleposs     F/var/www/html/env/lib/python3.11/site-packages/PIL/GimpGradientFile.pylinearr      s`    
f}}G39v%%FlvG3sV+++    c                l    |t          d          t          t          | t                              z  z  S )Nr   )r   maxr   r   s     r   curvedr   .   s*    3s88c#fg"6"677788r   c                p    t          t           dz  t          t          | |          z  z             dz   dz  S )Ng       @r   )r   r   r   r   s     r   siner   2   s4    "sb6&##6#66677#=DDr   c                N    t          dt          | |          dz
  dz  z
            S Nr      r   r   r   s     r   sphere_increasingr   6   s)    vfc**S0Q66777r   c                N    dt          dt          | |          dz  z
            z
  S r   r   r   s     r   sphere_decreasingr   :   s)    cF63//1445555r   c                      e Zd ZdZddZdS )GradientFileN   c           	     p   g }d}| j         |         \  }}}}}}	t          |          D ]w}
|
|dz
  z  }||k     r|dz  }| j         |         \  }}}}}}	||k     ||z
  }|t          k     r |	dd          }n |	||z
  |z  ||z
  |z            }t          t	          d|d         |d         z
  |z  |d         z   z  dz                       }t          t	          d|d         |d         z
  |z  |d         z   z  dz                       }t          t	          d|d         |d         z
  |z  |d         z   z  dz                       }t          t	          d|d         |d         z
  |z  |d         z   z  dz                       }|                    ||z   |z   |z              yd                    |          dfS )	Nr   r   r      r      r   RGBA)gradientranger   r	   intappendjoin)selfentriespaletteixx0x1xmrgb0rgb1segmentixwscalergbas                     r   
getpalettezGradientFile.getpaletteE   s   *.-*;'BD$w 	* 	*AWq[!Aq&&a26-2C/BD$ q&& RA7{{S))bAB!|<< 3stAwa0E9DGCDsJKKLLA3stAwa0E9DGCDsJKKLLA3stAwa0E9DGCDsJKKLLA3stAwa0E9DGCDsJKKLLA NN1q519q=))))xx  &((r   )r"   )__name__
__module____qualname__r'   r>    r   r   r!   r!   B   s-        H) ) ) ) ) )r   r!   c                      e Zd ZdZd ZdS )GimpGradientFilez(File handler for GIMP's gradient format.c           	        |                                 d d         dk    rd}t          |          |                                 }|                    d          r&|                                                                 }t	          |          }g }t          |          D ]}|                                                                 }d |d d         D             }|d         |d         }
}	|d	         }|d
d         }|dd         }t          t	          |d                            }t	          |d                   }|dk    rd}t          |          |	                    |	|
||||f           || _
        d S )N   s   GIMP Gradientznot a GIMP gradient files   Name: c                ,    g | ]}t          |          S rB   )float).0r7   s     r   
<listcomp>z-GimpGradientFile.__init__.<locals>.<listcomp>y   s    ***aq***r      r   r   r   r%         zcannot handle HSV colour space)readlineSyntaxError
startswithstripr)   r(   splitSEGMENTSOSErrorr*   r'   )r,   fpmsglinecountr'   r6   sr8   r0   r1   r2   r3   r4   r5   cspaces                   r   __init__zGimpGradientFile.__init__h   se   ;;=="!111,Cc"""{{}} ??9%% 	);;==&&((DD		u 	? 	?A##%%A**1SbS6***AqT1Q4B1BQqS6DQrT7Ds1R5zz*G2ZZF{{6cll"OORRtW=>>>> r   N)r?   r@   rA   __doc__r[   rB   r   r   rD   rD   e   s)        22!! !! !! !! !!r   rD   N)r\   
__future__r   mathr   r   r   r   _binaryr	   r   r   r   r   r   r   rS   r!   rD   rB   r   r   <module>r`      s#    
 # " " " " " # # # # # # # # # # # #      
 , , ,9 9 9E E E8 8 86 6 6 FD"35FG  )  )  )  )  )  )  )  )F$! $! $! $! $!| $! $! $! $! $!r   