渐变算法。它甚至可以工作

时间:2012-01-13 07:45:02

标签: java colors bitmap gradient

如果我获得了颜色A和颜色B,那么如何在画布上生成渐变,然后将其转换为位图。

这样

public Bitmap makeGradient(Color from,Color to){}

实际上会有效吗?

我希望这不是太模糊。我非常感谢你的时间和精力。

聚苯乙烯。有一个关于stackoverflow的问题可以解决这个问题,但我很困惑:(

这是:Generating gradients programmatically?

1 个答案:

答案 0 :(得分:1)

创建径向渐变的一种方法可能是定义焦点以及渐变的范围,当您生成图像时,您需要计算当前像素与焦点之间的距离,将其除以通过渐变范围并将结果剪辑为1.然后在您链接的问题中使用公式。

像这样的伪代码:

double d = distance(currentPixel, focusPoint); //I'll leave the implementation for you
double factor = Math.max(1.0, d/extent);

int red = (int) (firstCol.getRed() * factor + secondCol.getRed() * (1.0 - factor) );
int green= (int) firstCol.getGreen() * factor + secondCol.getGreen()* (1.0 - factor) );
int blue = (int) (firstCol.getBlue() * factor + secondCol.getBlue()* (1.0 - factor) );

这意味着像素离焦点越远,firstCol对它的影响就越大(超出渐变范围的像素将只使用firstCol,因为{{1}那些应该是factor