gpt4 book ai didi

javafx - 如何从渐变中获取颜色

转载 作者:行者123 更新时间:2023-12-01 22:58:21 27 4
gpt4 key购买 nike

我有一个梯度,e。 G。绿色到红色,范围从 0 到 100。我需要从该渐变中查找任何给定值的颜色。目前我正在 Canvas 上画一条线,填充它,拍摄快照并使用像素读取器获取颜色。有谁知道更好的方法吗?对我来说这似乎太过分了。

代码的简单版本:

private Color getColor( double value) {

Canvas canvas = new Canvas(100, 1);
GraphicsContext gc = canvas.getGraphicsContext2D();

Stop[] stops = new Stop[] { new Stop(0, Color.GREEN), new Stop(1, Color.RED)};

LinearGradient linearGradient = new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops);
gc.setFill(linearGradient);
gc.rect( 0, 0, canvas.getWidth(), canvas.getHeight());
gc.fill();

WritableImage image = new WritableImage((int) canvas.getWidth(), (int) canvas.getHeight());
image = canvas.snapshot(null, image);

PixelReader imageReader = image.getPixelReader();
Color imageColor = imageReader.getColor( (int) value, 0);
}

非常感谢!

最佳答案

您可以自己插入颜色:

Color imageColor = Color.GREEN.interpolate(Color.RED, value / 100.0);

关于javafx - 如何从渐变中获取颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28958433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com