如果我获得了颜色A和颜色B,那么如何在画布上生成渐变,然后将其转换为位图。
这样
public Bitmap makeGradient(Color from,Color to){}
实际上会有效吗?
我希望这不是太模糊。我非常感谢你的时间和精力。
聚苯乙烯。有一个关于stackoverflow的问题可以解决这个问题,但我很困惑:(
答案 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
。