ajout de nom et d'effet noir et blanc sur une image
Bonsoir je suis débutante en javaFX et mon problème c'est d'ajouter le nom de l'image qu'on ajouter avec la methode openImage dans notre scene (image+son nom) et plus ajouter un filtre pour qu'elle devient noir et blanc en la sauvegardent ;) et merci d'avance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
package tp2;
import java.io.File;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.geometry.Rectangle2D;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.ScrollEvent;
import javafx.scene.layout.BorderPane;
import javafx.stage.FileChooser;
/**
*
* @author L540
*/
public class FXMLDocumentController {
private Image currentImage;
private int currentRotation = 0;
@FXML ImageView imageView;
@FXML BorderPane borderPane;
@FXML
private Label label;
private double zoomInMultiplier = 1.15;
private double zoomOutMultiplier = 0.85;
//Variables for mouse movement.
private double mouseDragEnteredX;
private double mouseDragEnteredY;
private int rotateDegree = 30; //Degrees to rotate;
@FXML public void openImage(Event event) {
File file;
FileChooser fileChooser = new FileChooser();
file = fileChooser.showOpenDialog(null); //User selects file from explorer.
currentRotation = 0; //new image will load in straight.
imageView.setRotate(currentRotation);
currentImage = new Image(file.toURI().toString());
imageView.setImage(currentImage);
imageView.setViewport(new Rectangle2D(0,0,currentImage.getWidth(), currentImage.getHeight()));
imageView.setFitHeight(currentImage.getHeight());
imageView.setFitWidth(currentImage.getWidth());
TP2.getStage().setTitle(file.getName()); //sets filename as window title.
}
@FXML public void handleZoomIn(Event event) {
imageView.setFitHeight(imageView.getFitHeight()*zoomInMultiplier);
imageView.setFitWidth(imageView.getFitWidth()*zoomInMultiplier);
}
@FXML public void handleZoomOut(Event event) {
imageView.setFitHeight(imageView.getFitHeight()*zoomOutMultiplier);
imageView.setFitWidth(imageView.getFitWidth()*zoomOutMultiplier);
}
@FXML public void handleScrollOnImage(ScrollEvent event) {
if(event.getDeltaY() > 0){ //scrolling forward
handleZoomIn(event);
}
if(event.getDeltaY() < 0){//scrolling backward
handleZoomOut(event);
}
}
public void handleMouseDrag(MouseEvent event) {
double changeX = -(mouseDragEnteredX- event.getSceneX());
double changeY = -(mouseDragEnteredY- event.getSceneY());
borderPane.getCenter().setTranslateX(changeX);
borderPane.getCenter().setTranslateY(changeY);
}
@FXML public void handleDragEntered(MouseEvent event) {
mouseDragEnteredX = event.getSceneX();
mouseDragEnteredY = event.getSceneY();
}
@FXML public void handleClickLeftRotate(Event event) {
currentRotation += -rotateDegree;
imageView.setRotate(currentRotation);
}
@FXML public void handleClickRightRotate(Event event) {
currentRotation += rotateDegree;
imageView.setRotate(currentRotation);
}
@FXML public void delete(Event event){
imageView.imageProperty().set(null);
}
} |