颜色渐变的算法

从CSDN上看到一个颜色渐变的算法,它是把前一个颜色的红蓝绿三色提出来,现去减后一个红蓝绿的颜色值,代码如下:
 void paint (Graphics g, int x, int y, int w, int h, int colorBegin, int colorEnd) {
int r0 = (colorBegin >> 16) & 0xff;
int r1 = (colorEnd >> 16) & 0xff;
int g0 = (colorBegin >> 8) & 0xff;
int g1 = (colorEnd >> 8) & 0xff;
int b0 = colorBegin & 0xff;
int b1 = colorEnd & 0xff;
int F,rr,gg,bb;
for (int i = 0; i < h; i++)
{
F = (i << 16) / h;
rr = r0 + ((F * (r1 - r0)) >> 16);
gg = g0 + ((F * (g1 - g0)) >> 16);
bb = b0 + ((F * (b1 - b0)) >> 16);
g.setColor(rr << 16 | gg << 8 | bb);
g.drawRect(x , y + i, w - 1, 0);
}
}

时间: 2024-09-28 18:32:40

颜色渐变的算法的相关文章

颜色渐变基本算法

// 3颜色等比线性变换 int startColor = COLORS[colorType][0]; int endColor = COLORS[colorType][1]; int delaR = [AColor getRed:endColor] - [AColor getRed:startColor]; int delaG = [AColor getGreen:endColor] - [AColor getGreen:startColor]; int delaB = [AColor get

as3.0 小代码(1)------ 颜色渐变中的颜色渐变数组产生算法

//分离:如0xefebec  变成[0xec,0xeb,oxef] function colorValTransfer(inNum:uint):Array{ if(inNum>0xffffff){ throw new Error("Function:colorValTransfer parameter:inNum>>>parameter's value must be smaller than 0xffffff"); } var outArr = []; ou

颜色渐变的RGB计算

均匀渐变 渐变(Gradient)是美学中一条重要的形式美法则,与其相对应的是突变.形状.大小.位置.方向.色彩等视觉因素都可以进行渐变.在色彩中,色相.明度.纯度也都可以产生渐变效果,并会表现出具有丰富层次的美感.本文主要讲述两种颜色RGB数值的渐变算法. 已知:A=50,B=200,A.B之间平均分成3份(Step=3),求每份的数值(StepN)分别是多少. 公式:Gradient = A + (B-A) / Step * N [注]:编程时为了提高效率避免浮点运算,往往把除法放在最后面,

code实现透明度渐变和颜色渐变的view

最近用code写了些view上的渐变效果,使得app的UI特效不必全部依赖美工出的图片. 效果如下: 主要用到了Layer上的渐变层,核心代码如下,关于CALaer的使用可参考 //Transparent Gradient Layer - (void) insertTransparentGradient { UIColor *colorOne = [UIColor colorWithRed:(33/255.0) green:(33/255.0) blue:(33/255.0) alpha:0.0

iOS 动画绘制线条颜色渐变的折线图

效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图.折线图可以更加直观的表示数据的变化.网络上有很多绘制折线图的demo,有的也使用了动画,但是线条颜色渐变的折线图的demo少之又少,甚至可以说没有.该Blog阐述了动画绘制线条颜色渐变的折线图的实现方案,以及折线图线条颜色渐变的实现原理,并附以完整的示例. 成果 本人已将折线图封装到了一个UIView子类中,并提供了相应的接口.该自定义折线图视图,基本上可以适用于大部分

鼠标在字体上移动,字体颜色渐变

这里的传参方法跟本博客中javascript"鼠标移入移出背景色渐变"中的传参方式相同,我贴的代码是全部都有的,大家可以复制过去直接看效果,有更好的建议的望留言…… <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>鼠标在字体上移入移出字体颜色渐变</title> <style&g

自定义控件之圆形颜色渐变进度条--SweepGradient

前几天在群里面有人找圆形可颜色渐变进度条,其中主要的知识点是SweepGradient: mSweepGradient = new SweepGradient(240, 360, new int[] { Color.CYAN, Color.DKGRAY, Color.GRAY, Color.LTGRAY, Color.MAGENTA, Color.GREEN, Color.TRANSPARENT, Color.BLUE }, null); 如上:第三个参数为渐变颜色内容,前两个是坐标信息,240

CSS 实现背景色渐变和文字颜色渐变

1. 背景色渐变 A . linear-gradient:用线性渐变创建图像. 语法:<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+) 下述值用来表示渐变的方向,可以使用角度或者关键字来设置: <angle>:用角度值指定渐变的方向(或角度). to left: 设置渐变为

CAGradientLayer颜色渐变器

使用CAGradientLayer可以实现颜色的渐变, 我们先看下头文件 @interface CAGradientLayer : CALayer @property(nullable, copy) NSArray *colors;//颜色渐变的数组 @property(nullable, copy) NSArray<NSNumber *> *locations;//渐变颜色的区间分布,locations的数组长度和color一致,默认是nil,会平均分布 @property CGPoint