当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaFX 类 ColorAdjust用法及代码示例


ColorAdjust类是JavaFX的一部分。 ColorAdjust类允许per-pixel调整色调,饱和度,亮度和对比度。 ColorAdjust类继承了Effect类。

该类的构造函数:

  1. ColorAdjust():创建ColorAdjust类的新对象
  2. ColorAdjust(double hue, double saturation, double brightness, double contrast):使用指定的色相,饱和度,亮度和对比度值创建一个新的ColorAdjust类对象。

常用方法:


方法 说明
getBrightness() 返回ColorAdjust效果的亮度值
setBrightness(double v) 设置ColorAdjust效果的亮度值
getHue() 返回ColorAdjust效果的色相值
setHue(double v) 设置ColorAdjust效果的色相值
getContrast() 返回ColorAdjust效果的Contrast值
setContrast(double v) 设置ColorAdjust效果的对比度值
getSaturation() 返回ColorAdjust效果的Saturation值
setSaturation(double v) 设置ColorAdjust效果的饱和度值
getInput() 返回属性输入的值
setInput(Effect v) 设置属性输入的值

以下示例程序旨在说明ColorAdjust类的用法:

  1. Java程序将色彩调整效果应用于具有指定色相,亮度,对比度和饱和度的图像:在此程序中,将创建FileInputStream并将图像作为文件的输入。使用来自文件输入流的输入来创建名为image的图像。从图像中创建一个图像视图对象,并将其添加到VBox中。然后将VBox添加到场景,并将场景添加到舞台。使用函数setHue(),setBrightness(),setSaturation(),setContrast()创建ColorAdjust效果并设置色相,饱和度,对比度和亮度的值,并使用setEffect()函数将效果设置为图像视图。
    // Java Program to apply color Adjust effect 
    // to a image with specified hue, brightness,  
    // contrast and Saturation 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.scene.image.*; 
    import javafx.scene.effect.*; 
    import java.io.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.Group; 
      
    public class ColorAdjust_1 extends Application { 
      
        // launch the application 
        public void start(Stage stage) throws Exception 
        { 
      
            // set title for the stage 
            stage.setTitle("ColorAdjust example"); 
      
            // create a input stream 
            FileInputStream input = new FileInputStream("f:\\gfg.png"); 
      
            // create a image 
            Image image = new Image(input); 
      
            // create a image View 
            ImageView imageview = new ImageView(image); 
      
            // create a ColorAdjust effect 
            ColorAdjust color_adjust = new ColorAdjust(); 
      
            // set hue, saturation, brightness, and contrast 
            color_adjust.setHue(0.4); 
            color_adjust.setBrightness(0.6); 
            color_adjust.setContrast(0.8); 
            color_adjust.setSaturation(0.1); 
      
            // set effect 
            imageview.setEffect(color_adjust); 
      
            // create a VBox 
            VBox vbox = new VBox(imageview); 
      
            // create a scene 
            Scene scene = new Scene(vbox, 200, 200); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
      
        // Main Method 
        public static void main(String args[]) 
        { 
      
            // launch the application 
            launch(args); 
        } 
    }

    输入图片:

    输出:

  2. Java程序将色彩调整效果应用于具有色相,亮度,对比度和饱和度的图像作为来自用户的输入(使用文本字段):在此程序中,将创建FileInputStream并将图像作为文件的输入。使用来自文件输入流的输入来创建名为image的图像。从图像创建图像视图对象,并将其添加到VBox。然后将VBox添加到场景,并将场景添加到舞台。使用函数setHue(),setBrightness(),setSaturation(),setContrast()创建ColorAdjust效果并设置色相,饱和度,对比度和亮度的值,并使用setEffect()函数将效果设置为图像视图。我们将创建四个文本字段(色相,饱和度,对比度和亮度)和一个Button按钮。用户将提供必要的色相,饱和度,对比度和亮度值,并在按下按钮时将这些值应用于图像。创建一个EventHandler来处理按钮事件。
    // Java Program to apply color Adjust effect 
    // to a image with hue, brightness, contrast 
    // and Saturation taken as input from from user 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.scene.image.*; 
    import javafx.scene.effect.*; 
    import java.io.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.Group; 
      
    public class ColorAdjust_2 extends Application { 
      
    // launch the application 
    public void start(Stage stage) throws Exception 
    { 
      
        // set title for the stage 
        stage.setTitle("ColorAdjust example"); 
      
        // textfields 
        TextField hue, saturation, brightness, contrast; 
      
        // create the textFields 
        hue = new TextField("Hue"); 
        saturation = new TextField("Saturation"); 
        brightness = new TextField("Brightness"); 
        contrast = new TextField("Contrast"); 
      
        // create a input stream 
        FileInputStream input = new FileInputStream("f:\\gfg.png"); 
      
        // create a image 
        Image image = new Image(input); 
      
        // create a image View 
        ImageView imageview = new ImageView(image); 
      
        // create a ColorAdjust effect 
        ColorAdjust color_adjust = new ColorAdjust(); 
      
        // create a button 
        Button button = new Button("apply"); 
      
        // action event 
        EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { 
            public void handle(ActionEvent e) 
            { 
                // set the hue, brightness, contrast and saturation 
                color_adjust.setHue(Double.parseDouble(hue.getText())); 
                  
                color_adjust.setBrightness(Double.parseDouble( 
                                         brightness.getText())); 
                                           
                color_adjust.setContrast(Double.parseDouble( 
                                        contrast.getText())); 
                                          
                color_adjust.setSaturation(Double.parseDouble( 
                                         saturation.getText())); 
            } 
        }; 
      
        // set on action of button 
        button.setOnAction(event); 
      
        // set effect 
        imageview.setEffect(color_adjust); 
      
        // create a VBox 
        VBox vbox = new VBox(imageview, hue, saturation,  
                        brightness, contrast, button); 
      
        // create a scene 
        Scene scene = new Scene(vbox, 200, 400); 
      
        // set the scene 
        stage.setScene(scene); 
      
        stage.show(); 
    } 
      
    // Main Method 
    public static void main(String args[]) 
    { 
      
        // launch the application 
        launch(args); 
    } 
    }

    输入图片:

    输出:

注意:以上程序可能无法在在线IDE中运行。请使用离线编译器。

参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/effect/ColorAdjust.html



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | ColorAdjust Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。