Java:将java.awt.Color转换为javafx.scene.paint.Color
Java: convert java.awt.Color to javafx.scene.paint.Color
如何将一个转换为另一个?我想到了一种通过 rgb 字符串的方法,但这种情况下 alpha 层被忽略了。所以问题 - 如何使用 alpha 将一个转换为另一个?
从 awt Color 对象中获取每个组件并使用 javafx.scene.paint.Color.rgb(...)
静态方法。请注意,awt Color 有一个 getAlpha()
方法,该方法 returns alpha 作为 0-255
范围内的 int
,而 javafx.scene.paint.Color.rgb(...)
期望 alpha 值作为 double
在范围 0.0-1.0
:
java.awt.Color awtColor = ... ;
int r = awtColor.getRed();
int g = awtColor.getGreen();
int b = awtColor.getBlue();
int a = awtColor.getAlpha();
double opacity = a / 255.0 ;
javafx.scene.paint.Color fxColor = javafx.scene.paint.Color.rgb(r, g, b, opacity);
如何将一个转换为另一个?我想到了一种通过 rgb 字符串的方法,但这种情况下 alpha 层被忽略了。所以问题 - 如何使用 alpha 将一个转换为另一个?
从 awt Color 对象中获取每个组件并使用 javafx.scene.paint.Color.rgb(...)
静态方法。请注意,awt Color 有一个 getAlpha()
方法,该方法 returns alpha 作为 0-255
范围内的 int
,而 javafx.scene.paint.Color.rgb(...)
期望 alpha 值作为 double
在范围 0.0-1.0
:
java.awt.Color awtColor = ... ;
int r = awtColor.getRed();
int g = awtColor.getGreen();
int b = awtColor.getBlue();
int a = awtColor.getAlpha();
double opacity = a / 255.0 ;
javafx.scene.paint.Color fxColor = javafx.scene.paint.Color.rgb(r, g, b, opacity);