Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1. package sample;
  2.  
  3. import sample.Histogram;
  4. import javafx.beans.value.ChangeListener;
  5. import javafx.beans.value.ObservableValue;
  6. import javafx.fxml.FXML;
  7. import javafx.scene.chart.BarChart;
  8. import javafx.scene.chart.XYChart;
  9. import javafx.scene.chart.XYChart.Data;
  10. import javafx.scene.control.Button;
  11. import javafx.scene.control.ChoiceBox;
  12. import javafx.scene.image.Image;
  13. import javafx.scene.image.ImageView;
  14.  
  15.  
  16. public class histController {
  17.  
  18.  
  19. @FXML
  20. private BarChart<String, Number> barChart;
  21.  
  22. @FXML
  23. private ChoiceBox<String> rgbChoiceBox;
  24.  
  25. private Histogram imageHistogram;
  26. private Image originalImage;
  27.  
  28. @FXML
  29. private Button rozciagnijButton, wyrownajButton, rozjasnijButton, przyciemnijButton, originalButton;
  30.  
  31. @FXML
  32. void initialize() {
  33. barChart.setAnimated(false);
  34. barChart.setLegendVisible(false);
  35. rgbChoiceBox.setValue("All");
  36. rgbChoiceBox.getItems().add("All");
  37. rgbChoiceBox.getItems().add("RGB");
  38. rgbChoiceBox.getItems().add("R");
  39. rgbChoiceBox.getItems().add("G");
  40. rgbChoiceBox.getItems().add("B");
  41.  
  42. rgbChoiceBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
  43. @Override
  44. public void changed(ObservableValue<? extends String> arg0, String arg1, String arg2) {
  45. if (arg2 == "R")
  46. drawR();
  47. else if (arg2 == "G")
  48. drawG();
  49. else if (arg2 == "B")
  50. drawB();
  51. else if (arg2 == "RGB")
  52. drawRGB();
  53. else if (arg2 == "All")
  54. drawAll();
  55. }
  56. });
  57. }
  58.  
  59. public void drawHistogram(ImageView imageView) {
  60. barChart.getData().clear();
  61.  
  62. imageHistogram = new Histogram(imageView);
  63. originalImage = imageView.getImage();
  64. drawAll();
  65. colorChart();
  66. }
  67.  
  68. private void drawR() {
  69. barChart.getData().clear();
  70. barChart.getData().add(imageHistogram.getSeriesRed());
  71. }
  72.  
  73. private void drawG() {
  74. barChart.getData().clear();
  75. barChart.getData().add(imageHistogram.getSeriesGreen());
  76. }
  77.  
  78. private void drawB() {
  79. barChart.getData().clear();
  80. barChart.getData().add(imageHistogram.getSeriesBlue());
  81. }
  82.  
  83. private void drawRGB() {
  84. barChart.getData().clear();
  85. barChart.getData().add(imageHistogram.getSeriesRGB());
  86. XYChart.Series seriesRGB = barChart.getData().get(0);
  87. seriesRGB.getData().forEach(d -> ((Data) d).getNode().setStyle("-fx-bar-fill: grey"));
  88. }
  89.  
  90. private void drawAll() {
  91. barChart.getData().clear();
  92. barChart.getData().addAll(imageHistogram.getSeriesRed(), imageHistogram.getSeriesGreen(),
  93. imageHistogram.getSeriesBlue());
  94. }
  95.  
  96. private void colorChart() {
  97. XYChart.Series seriesRed = barChart.getData().get(0);
  98. XYChart.Series seriesGreen = barChart.getData().get(1);
  99. XYChart.Series seriesBlue = barChart.getData().get(2);
  100.  
  101. seriesRed.getData().forEach(d -> ((Data) d).getNode().setStyle("-fx-bar-fill: red"));
  102.  
  103. seriesGreen.getData().forEach(d -> ((Data) d).getNode().setStyle("-fx-bar-fill: green"));
  104.  
  105. seriesBlue.getData().forEach(d -> ((Data) d).getNode().setStyle("-fx-bar-fill: blue"));
  106. }
  107.  
  108. @FXML
  109. public void rozciagnijHistogram() {
  110. imageHistogram.rozciagnijHistogram();
  111. rgbChoiceBox.setValue("All");
  112. drawAll();
  113. colorChart();
  114. }
  115.  
  116. @FXML
  117. public void wyrownajHistogram() {
  118. imageHistogram.wyrownajHistogram();
  119. rgbChoiceBox.setValue("All");
  120. drawAll();
  121. colorChart();
  122. }
  123.  
  124. @FXML
  125. public void rozjasnijHistogram() {
  126. imageHistogram.rozjasnijHistogram();
  127. rgbChoiceBox.setValue("All");
  128. drawAll();
  129. colorChart();
  130. }
  131.  
  132. @FXML
  133. public void przyciemnijHistogram() {
  134. imageHistogram.przyciemnijHistogram();
  135. rgbChoiceBox.setValue("All");
  136. drawAll();
  137. colorChart();
  138. }
  139.  
  140. @FXML
  141. public void setToOroginalImage() {
  142. imageHistogram.setImage(originalImage);
  143. rgbChoiceBox.setValue("All");
  144. drawAll();
  145. colorChart();
  146. }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement