本文概述
- RGB颜色
- 颜色名称
- HSB颜色
- 网页颜色
RGB颜色 【JavaFX颜色】RGB颜色系统是在图形中创建颜色的最流行方法。它由名为RED→R, GREEN→G和BLUE→B的三个组件组成。每个组件使用8位, 这意味着每个组件都可以具有从0到22 ^ 8-1 = 255的整数值。
电脑屏幕可以看作是像素的集合。集合(R, G, B)实际上表示屏幕上相应LED的发射。
如果将RED的值设置为0, 则表示红色LED熄灭, 而值255表示LED处于完全发光状态。 (0, 0, 0)的组合表示黑色, 而(255, 255, 255)的组合表示白色。该范围内的中间值可以代表不同的颜色。
使用RGB的叠加, 我们可以表示255 * 255 * 255种不同的颜色。在JavaFX中, 类javafx.scene.paint.Color类表示颜色。
有一个名为Color类的rgb()的静态方法。它接受三个整数参数, 例如Red, Green, Blue和一个可选的double参数, 称为alpha。 alpha的值与颜色的不透明度成正比。 Alpha值0表示颜色是完全透明的, 而值1表示颜色是完全不透明的。
例:
package application;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.DropShadow;
import javafx.scene.effect.Shadow;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Shape_Example extends Application {@Override
public void start(Stage primarystage) {
Group root = new Group();
primarystage.setTitle("Color Example");
Rectangle rect = new Rectangle();
rect.setX(50);
rect.setY(20);
rect.setWidth(100);
rect.setHeight(150);
int red=20;
int green=125;
int blue=10;
rect.setFill(Color.rgb(red, green, blue, 0.63));
root.getChildren().add(rect);
Scene scene = new Scene(root, 200, 200);
primarystage.setScene(scene);
primarystage.show();
}public static void main(String[] args) {
launch(args);
}
}
文章图片
颜色名称 在JavaFX中, 我们还可以通过颜色名称创建颜色。类javafx.scene.paint.Color包含所有颜色作为类属性。需要在setFill()方法中将Color属性作为Paint类对象传递。
例:
package application;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.DropShadow;
import javafx.scene.effect.Shadow;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Shape_Example extends Application {@Override
public void start(Stage primarystage) {
Group root = new Group();
primarystage.setTitle("Color Example");
Rectangle rect = new Rectangle();
rect.setX(50);
rect.setY(20);
rect.setWidth(100);
rect.setHeight(150);
rect.setFill(Color.RED);
//passing color name
rect.setEffect(new DropShadow());
root.getChildren().add(rect);
Scene scene = new Scene(root, 200, 200);
primarystage.setScene(scene);
primarystage.show();
}public static void main(String[] args) {
launch(args);
}
}
文章图片
HSB颜色 除了到目前为止我们已经看到的各种方法之外, JavaFX还使我们能够使用HSB来创建颜色, HSB是色相, 饱和度和亮度的组合。 javafx.scene.paint.Color包含一个静态方法Color.hsb(), 该方法接受三个整数h, s和b。
例:
下面的示例实现Color.hsb()方法来填充舞台。
package application;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.DropShadow;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Shape_Example extends Application {@Override
public void start(Stage primarystage) {
Group root = new Group();
primarystage.setTitle("Color Example");
Rectangle rect = new Rectangle();
rect.setX(50);
rect.setY(20);
rect.setWidth(200);
rect.setHeight(250);
rect.setEffect(new DropShadow());
root.getChildren().add(rect);
Scene scene = new Scene(root, 300, 400, Color.hsb(180, 1, 1));
primarystage.setScene(scene);
primarystage.show();
}public static void main(String[] args) {
launch(args);
}
}
文章图片
网页颜色 javafx.scene.paint.color类使我们能够使用Color.web()方法创建Web颜色。这最多可以使用两个参数, 其中一个是颜色的十六进制值, 另一个是称为alpha通道的可选参数, 它代表颜色的不透明度。
Color.web(“#0000FF”)//带有隐式alpha的蓝色
Color.web(“#0000FF”, 1)//带有明确Alpha的蓝色
Alpha是双精度类型的值, 可以将值保留在0.0到1.0的范围内。
例:
package application;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.DropShadow;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Shape_Example extends Application {@Override
public void start(Stage primarystage) {
Group root = new Group();
primarystage.setTitle("Color Example");
Rectangle rect = new Rectangle();
rect.setX(50);
rect.setY(20);
rect.setWidth(200);
rect.setHeight(250);
rect.setEffect(new DropShadow());
rect.setFill(Color.web("#0000FF", 1));
root.getChildren().add(rect);
Scene scene = new Scene(root, 300, 400);
primarystage.setScene(scene);
primarystage.show();
}public static void main(String[] args) {
launch(args);
}
}
文章图片
推荐阅读
- JavaFX便捷方法
- JavaFX ColorInput
- JavaFX ColorAdjust效果
- JavaFX按钮
- JavaFX Cirlce
- uni-app开发全局弹层组件
- 路由基础之OSPF虚链路
- [OpenCV实战]23 使用OpenCV获取高动态范围成像HDR
- Keras中模型的编译