Advertisement
Guest User

Untitled

a guest
May 27th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.33 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package pfe_systeme_indexation;
  7.  
  8. import java.awt.image.BufferedImage;
  9. import java.io.File;
  10. import java.io.IOException;
  11. import java.net.URL;
  12. import java.sql.SQLException;
  13. import java.util.ArrayList;
  14. import java.util.ResourceBundle;
  15. import java.util.logging.Level;
  16. import java.util.logging.Logger;
  17. import javafx.embed.swing.SwingFXUtils;
  18. import javafx.event.ActionEvent;
  19. import javafx.fxml.FXML;
  20. import javafx.fxml.FXMLLoader;
  21. import javafx.fxml.Initializable;
  22. import javafx.geometry.Point2D;
  23. import javafx.scene.Parent;
  24. import javafx.scene.Scene;
  25. import javafx.scene.control.Alert;
  26. import javafx.scene.control.Alert.AlertType;
  27. import javafx.scene.control.Button;
  28. import javafx.scene.control.Label;
  29. import javafx.scene.control.MenuItem;
  30. import javafx.scene.control.ScrollPane;
  31. import javafx.scene.image.Image;
  32. import javafx.scene.image.ImageView;
  33. import javafx.scene.layout.Border;
  34. import javafx.scene.layout.BorderPane;
  35. import javafx.scene.layout.TilePane;
  36. import javafx.stage.FileChooser;
  37. import javafx.stage.Stage;
  38. import javax.imageio.ImageIO;
  39.  
  40. /**
  41.  * FXML Controller class
  42.  *
  43.  * @author GEEKLOFT 1
  44.  */
  45. public class MyClassController implements Initializable {
  46.     ArrayList <ImageProprieties> imageList= new ArrayList<ImageProprieties>();
  47.     ArrayList<Image> imageResult = new ArrayList<Image>();
  48.     int[] rgbHistogram = new int[256*3];
  49.     boolean couleur = false, forme = false;
  50.     int index = 0;
  51.     @FXML
  52.     ImageView myImageView, myImageResult1, myImageResult2, myImageResult3, myImageResult4, myImageResult5, myImageResult6;
  53.     @FXML
  54.     ScrollPane inputImagePanel;
  55.     @FXML
  56.     Button searchBtn;
  57.     @FXML
  58.     TilePane tilePane;
  59.     @FXML
  60.     MenuItem backItem;
  61.     @FXML
  62.     BorderPane border;
  63.     @FXML
  64.     Label imageName;
  65.  
  66. public void importImage()throws IOException{
  67.         imageResult.clear();
  68.          tilePane.getChildren().clear();
  69.         //for (int i = 0; i < imageList.size(); i++) tilePane.getChildren().remove(imageResult.get(i));
  70.         Image myImage;
  71.         FileChooser fileChooser = new FileChooser();
  72.             FileChooser.ExtensionFilter extFilterJPG = new FileChooser.ExtensionFilter("JPG files (*.jpg)", "*.JPG");
  73.             FileChooser.ExtensionFilter extFilterPNG = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.PNG");
  74.             FileChooser.ExtensionFilter extFilterBMP = new FileChooser.ExtensionFilter("BMP files (*.jpg)", "*.BMP");
  75.             //FileChooser.ExtensionFilter extFilterPNG = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.PNG");
  76.             fileChooser.getExtensionFilters().addAll(extFilterJPG, extFilterPNG, extFilterBMP);
  77.             File file = fileChooser.showOpenDialog(null);
  78.             if( file != null){
  79.                try {
  80.                     searchBtn.setDisable(false);
  81.                     BufferedImage bufferedImage = ImageIO.read(file);
  82.                     rgbHistogram = Calcule.imageHistogram(bufferedImage);
  83.                     myImage = SwingFXUtils.toFXImage(bufferedImage, null);
  84.                     //myImageView.setFitHeight(myImage.getHeight());
  85.                     myImageView.setFitWidth(myImage.getWidth());
  86.                     myImageView.setPreserveRatio(true);
  87.                     imageName.setText("Name : "+file.getName());
  88.                     myImageView.setCache(true);
  89.                     myImageView.setImage(myImage);
  90.                     } catch(IOException exp){
  91.                
  92.                 }
  93.             }          
  94.        
  95.         }
  96. public void colorIsChecked(){
  97.     if (couleur == false ) couleur = true;
  98.     else couleur = false;
  99.    
  100. }
  101. public void formIsChecked(){
  102.     if (forme == false ) forme = true;
  103.     else forme = false;
  104.    
  105. }
  106. public void searchMethod() throws SQLException, IOException{
  107.     if(couleur) {
  108.                 imageResult.clear();
  109.                 tilePane.getChildren().clear();
  110.                 //System.gc();
  111.         Calcule.getImages(imageList);
  112.         DistanceClass[] tableDesDistance = new DistanceClass[imageList.size()];
  113.         Calcule.calculeDistance(tableDesDistance, imageList, rgbHistogram);
  114.         Calcule.triBulleCroissant(tableDesDistance);
  115.         byte[] imageByte= null;
  116.         Calcule.createImage(imageByte, imageResult, tableDesDistance);
  117.     //myImageResult1.setImage(imageResult.get(0));
  118.     //imageByte= null;
  119.         System.out.println(imageResult.size()+"   "+imageByte);
  120.        
  121.        
  122.         for (int i = 0; i < imageList.size(); i++) tilePane.getChildren().add(new ImageView(imageResult.get(i)));
  123.     }
  124.    
  125.    
  126.    
  127.     for (int i = 0; i < imageList.size(); i++) System.out.println("name : ");
  128.     if(couleur) System.out.println("recheche par couleur");
  129.     else System.out.println("pas couleur");
  130.     if(forme) System.out.println("recherche par forme");
  131.     else System.out.println("pas forme");
  132.    
  133. }
  134. @FXML
  135. public void apropo(){
  136.     Alert alert = new Alert(AlertType.INFORMATION);
  137.     alert.setTitle("Apropos de ce Projet de Fin d'étude");
  138.     Image myImage = new Image(getClass().getResourceAsStream("/Icons/UnivLOGO.jpg"));
  139.     ImageView imageView = new ImageView(myImage);
  140.     alert.setGraphic(imageView);
  141.     alert.setHeaderText(null);
  142.     alert.setContentText("Université 8 Mai 1945 GUELMA \n Créer par : \n Encadrer Par : \n 04/2016");
  143.  
  144.     alert.showAndWait();
  145. }
  146. @FXML
  147. public void goHome(ActionEvent event){
  148.     Stage stage = null;
  149.     Parent root = null;
  150.     try {
  151.         stage=(Stage) border.getScene().getWindow();
  152.         root = FXMLLoader.load(getClass().getResource("/pfe_systeme_indexation/MainViewClass.fxml"));
  153.         Scene scene = new Scene( root);
  154.         stage.setTitle("Connectez vous");
  155.         stage.setScene(scene);
  156.         stage.setResizable(true);
  157.         stage.show();
  158.         } catch (IOException ex) {
  159.             Logger.getLogger(MainClassController.class.getName()).log(Level.SEVERE, null, ex);
  160.         }
  161. }
  162. public void nextImage(){
  163.     index = (index + 1) % imageResult.size();
  164.     myImageResult1.setImage(imageResult.get(index));
  165. }
  166.     /**
  167.      * Initializes the controller class.
  168.      */
  169.     @Override
  170.     public void initialize(URL url, ResourceBundle rb) {
  171.         // TODO
  172.     }    
  173.    
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement