转gif压缩问题,实机效果无明显棱线
需求分析
项目中很多时候要使用渐变色,但是系统框架给出的渐变都是线性渐变,那么想实现像阴影那样的非线性渐变就需要定义大量的点和中间色值。
思考
首先根据系统渐变特点,我们知道他是有一个locations和colors的,代表特征点位的色值。我们想实现类似阴影那样的即平滑有非线形的颜色变化过程实际上就是对这两个值做定义。但我们不可能每次都手动往里添加这么多特征点和色值,所以需要一个合适的方法来计算中间的点或色值。
数学定义上,非线性连续变化的很容易想到曲线,而常接触的曲线除了圆就是贝塞尔曲线了,这里我们使用贝塞尔曲线,通过调整控制点来动态控制颜色变化。