o
    6d                     @   s   d Z 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ZG d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.)
    )logpisinsqrt   )o8g|=c                 C   sL   || kr| t k r
dS d| |  S ||  }d|  } | t k rdS dd| |   S )Ng              ?      ?)EPSILONmiddlepos r   kC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\PIL/GimpGradientFile.pylinear   s   r   c                 C   s   |t dt t| t  S )Nr   )r   maxr
   r   r   r   r   curved.      r   c                 C   s$   t t d tt| |  d d S )Ng       @r	   )r   r   r   r   r   r   r   sine2   s   $r   c                 C   s   t dt| |d d  S Nr	      r   r   r   r   r   r   sphere_increasing6   r   r   c                 C   s   dt dt| |d   S r   r   r   r   r   r   sphere_decreasing:   r   r   c                   @   s   e Zd ZdZdddZdS )GradientFileN   c                 C   sp  g }d}| j | \}}}}}}	t|D ]}
|
|d  }||k r2|d7 }| j | \}}}}}}	||k s|| }|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 }||| | |  qd|dfS )	Nr   r   r      r          ZRGBA)gradientranger
   r   intappendjoin)selfentriespaletteZixx0x1xmrgb0rgb1segmentixwscalergbar   r   r   
getpaletteE   s&   ,,,,zGradientFile.getpalette)r   )__name__
__module____qualname__r   r5   r   r   r   r   r   B   s    r   c                   @   s   e Zd ZdZdd ZdS )GimpGradientFilez(File handler for GIMP's gradient format.c              	   C   s   |  d d dkrd}t||  }|dr|   }t|}g }t|D ]O}|   }dd |d d D }|d |d	 }	}
|d
 }|dd }|dd }tt|d  }t|d }|dkrmd}t||	|	|
||||f q)|| _
d S )N   s   GIMP Gradientznot a GIMP gradient files   Name: c                 S   s   g | ]}t |qS r   )float).0r.   r   r   r   
<listcomp>y   s    z-GimpGradientFile.__init__.<locals>.<listcomp>   r   r   r   r         zcannot handle HSV colour space)readlineSyntaxError
startswithstripr!   r    splitSEGMENTSOSErrorr"   r   )r$   fpmsglinecountr   r-   sr/   r'   r(   r)   r*   r+   r,   Zcspacer   r   r   __init__h   s,   

zGimpGradientFile.__init__N)r6   r7   r8   __doc__rM   r   r   r   r   r9   e   s    r9   N)rN   mathr   r   r   r   _binaryr   r
   r   r   r   r   r   rF   r   r9   r   r   r   r   <module>   s   #