Skip to content

Commit

Permalink
v1.8
Browse files Browse the repository at this point in the history
  • Loading branch information
Mararsh committed Jul 1, 2018
1 parent 204d991 commit 3000778
Show file tree
Hide file tree
Showing 45 changed files with 2,018 additions and 680 deletions.
57 changes: 29 additions & 28 deletions MyBox/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>mara</groupId>
<artifactId>MyBox</artifactId>
<version>1.7</version>
<version>1.8</version>
<packaging>jar</packaging>

<name>MyBox</name>
Expand All @@ -17,6 +17,33 @@
<organization>
<name>Mara</name>
</organization>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.9</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.9</version>
</dependency>
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-jpeg2000</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-core</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>

<build>
<plugins>
Expand Down Expand Up @@ -103,31 +130,5 @@
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.9</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.9</version>
</dependency>
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-jpeg2000</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-core</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.image.Image;
import javafx.concurrent.Task;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
Expand All @@ -29,7 +30,8 @@
public abstract class ImageBaseController extends BaseController {

protected ImageFileInformation imageInformation;
protected BufferedImage image;
protected BufferedImage bufferImage;
protected Image image;
protected File sourceFile;

protected class ProcessParameters {
Expand Down Expand Up @@ -122,10 +124,10 @@ public void loadImage(final File file, final boolean onlyInformation) {
@Override
protected Void call() throws Exception {
imageInformation = ImageFileReaders.readImageMetaData(fileName);
image = null;
bufferImage = null;
String format = FileTools.getFileSuffix(fileName).toLowerCase();
if (!"raw".equals(format) && !onlyInformation) {
image = ImageIO.read(file);
bufferImage = ImageIO.read(file);
}
Platform.runLater(new Runnable() {
@Override
Expand Down Expand Up @@ -154,12 +156,12 @@ public void setImageInformation(ImageFileInformation imageInformation) {
this.imageInformation = imageInformation;
}

public BufferedImage getImage() {
return image;
public BufferedImage getBufferImage() {
return bufferImage;
}

public void setImage(BufferedImage image) {
this.image = image;
public void setBufferImage(BufferedImage bufferImage) {
this.bufferImage = bufferImage;
}

public File getSourceFile() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,16 +150,16 @@ private void startProcess(ActionEvent event) {
@Override
protected Void call() {
try {
image = ImageIO.read(sourceFile);
bufferImage = ImageIO.read(sourceFile);
targetFile = makeFilename();

// logger.debug("gray:" + BufferedImage.TYPE_BYTE_GRAY + " binary: " + BufferedImage.TYPE_BYTE_BINARY);
// logger.debug("argb:" + BufferedImage.TYPE_INT_ARGB + " rgb: " + BufferedImage.TYPE_INT_RGB);
int color = ImageTools.getColorType(image);
BufferedImage newImage = image;
int color = ImageTools.getColorType(bufferImage);
BufferedImage newImage = bufferImage;
if (attributes.getSourceWidth() != attributes.getTargetWidth()
|| attributes.getSourceHeight() != attributes.getTargetHeight()) {
Image scaledImage = image.getScaledInstance(attributes.getTargetWidth(), attributes.getTargetHeight(), BufferedImage.SCALE_DEFAULT);
Image scaledImage = bufferImage.getScaledInstance(attributes.getTargetWidth(), attributes.getTargetHeight(), BufferedImage.SCALE_DEFAULT);
newImage = ImageConverter.toBufferedImage(scaledImage, color);
// logger.debug("newImage color:" + ImageTools.getColorType(newImage));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package mara.mybox.controller;

import java.io.File;
import java.util.ArrayList;
import java.util.Optional;
import javafx.beans.binding.Bindings;
import javafx.embed.swing.SwingFXUtils;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonType;
import javafx.stage.FileChooser;
import javax.imageio.ImageIO;
import static mara.mybox.controller.BaseController.logger;
import mara.mybox.imagefile.ImageFileWriters;
import mara.mybox.objects.AppVaribles;
import mara.mybox.tools.FileTools;
import mara.mybox.tools.FxmlTools;
import mara.mybox.tools.FxmlTools.ImageManufactureType;
import static mara.mybox.tools.FxmlTools.badStyle;

/**
* @Author Mara
* @CreateDate 2018-6-20
* @Description
* @License Apache License Version 2.0
*/
public class ImageManufactureController extends ImageViewerController {

@Override
protected void initializeNext2() {
try {

fileExtensionFilter = new ArrayList() {
{
add(new FileChooser.ExtensionFilter("images", "*.png", "*.jpg", "*.jpeg",
"*.tif", "*.tiff", "*.gif"));
add(new FileChooser.ExtensionFilter("png", "*.png"));
add(new FileChooser.ExtensionFilter("jpg", "*.jpg", "*.jpeg"));
// add(new FileChooser.ExtensionFilter("bmp", "*.bmp"));
add(new FileChooser.ExtensionFilter("tif", "*.tif", "*.tiff"));
add(new FileChooser.ExtensionFilter("gif", "*.gif"));
// add(new FileChooser.ExtensionFilter("pcx", "*.pcx"));
// add(new FileChooser.ExtensionFilter("pnm", "*.pnm"));
// add(new FileChooser.ExtensionFilter("wbmp", "*.wbmp"));
}
};

toolBar.disableProperty().bind(
Bindings.isEmpty(sourceFileInput.textProperty())
.or(sourceFileInput.styleProperty().isEqualTo(badStyle))
);
setTips();

} catch (Exception e) {
logger.error(e.toString());
}
}

@FXML
public void recovery() {
imageView.setImage(image);
}

@FXML
public void setSaturate() {
FxmlTools.manufactureImage(imageView, ImageManufactureType.Saturate);
}

@FXML
public void setDesaturate() {
FxmlTools.manufactureImage(imageView, ImageManufactureType.Desaturate);
}

@FXML
public void setInvert() {
FxmlTools.manufactureImage(imageView, ImageManufactureType.Invert);
}

@FXML
public void setGray() {
FxmlTools.manufactureImage(imageView, ImageManufactureType.Gray);
}

@FXML
public void setBrighter() {
FxmlTools.manufactureImage(imageView, ImageManufactureType.Brighter);
}

@FXML
public void setDarker() {
FxmlTools.manufactureImage(imageView, ImageManufactureType.Darker);
}

@FXML
public void save() {
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle(AppVaribles.getMessage("AppTitle"));
// alert.setHeaderText("Look, a Confirmation Dialog");
alert.setContentText(AppVaribles.getMessage("SureOverrideFile"));

Optional<ButtonType> result = alert.showAndWait();
if (result.get() != ButtonType.OK) {
return;
}
try {
String format = FileTools.getFileSuffix(sourceFile.getName());
ImageIO.write(SwingFXUtils.fromFXImage(imageView.getImage(), null), format, sourceFile);
image = imageView.getImage();
} catch (Exception e) {
logger.error(e.toString());
}
}

@FXML
public void saveAs() {
try {
final FileChooser fileChooser = new FileChooser();
File path = new File(AppVaribles.getConfigValue("imageSourcePath", System.getProperty("user.home")));
if (!path.isDirectory()) {
path = new File(System.getProperty("user.home"));
}
fileChooser.setInitialDirectory(path);
fileChooser.getExtensionFilters().addAll(fileExtensionFilter);
File file = fileChooser.showSaveDialog(getMyStage());
AppVaribles.setConfigValue("imageSourcePath", file.getParent());
String format = FileTools.getFileSuffix(file.getName());
ImageFileWriters.writeImageFile(SwingFXUtils.fromFXImage(imageView.getImage(), null), format, file.getAbsolutePath());
// ImageIO.write(SwingFXUtils.fromFXImage(imageView.getImage(), null), format, file);
} catch (Exception e) {
logger.error(e.toString());
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import java.io.File;
import javafx.beans.binding.Bindings;
import javafx.embed.swing.SwingFXUtils;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
Expand Down Expand Up @@ -72,6 +71,7 @@ public void sourceFileChanged(final File file) {

@Override
public void afterImageLoaded() {
imageView.setPreserveRatio(true);
if (scrollPane.getHeight() < imageInformation.getyPixels()) {
imageView.setFitHeight(scrollPane.getHeight() - 5);
imageView.setFitWidth(scrollPane.getWidth() - 1);
Expand All @@ -80,7 +80,8 @@ public void afterImageLoaded() {
imageView.setFitWidth(imageInformation.getxPixels());
}
try {
imageView.setImage(SwingFXUtils.toFXImage(image, null));
image = SwingFXUtils.toFXImage(bufferImage, null);
imageView.setImage(image);
// imageView.setImage(new Image("file:" + fileName, true));
if (imageFile != null) {
imageFile.setText(sourceFile.getName());
Expand All @@ -103,67 +104,67 @@ public void imageMouseReleased(MouseEvent event) {
}

@FXML
public void popImageInformation(ActionEvent event) {
public void popImageInformation() {
showImageInformation();
}

@FXML
public void popImageInformation2(MouseEvent event) {
public void popImageInformation2() {
showImageInformation();
}

@FXML
public void popMetaData(ActionEvent event) {
public void popMetaData() {
showImageMetaData();
}

@FXML
public void popMetaData2(MouseEvent event) {
public void popMetaData2() {
showImageMetaData();
}

@FXML
public void zoomIn(ActionEvent event) {
public void zoomIn() {
imageView.setFitHeight(imageView.getFitHeight() * 1.1);
imageView.setFitWidth(imageView.getFitWidth() * 1.1);
}

@FXML
public void zoomOut(ActionEvent event) {
public void zoomOut() {
imageView.setFitHeight(imageView.getFitHeight() * 0.9);
imageView.setFitWidth(imageView.getFitWidth() * 0.9);

}

@FXML
public void originalSize(ActionEvent event) {
public void originalSize() {
imageView.setFitHeight(imageInformation.getyPixels());
imageView.setFitWidth(imageInformation.getxPixels());
}

@FXML
public void windowSize(ActionEvent event) {
public void windowSize() {
imageView.setFitHeight(scrollPane.getHeight() - 5);
imageView.setFitWidth(scrollPane.getWidth() - 1);
}

@FXML
public void rotateRight(ActionEvent event) {
public void rotateRight() {
imageView.setRotate(90);
}

@FXML
public void rotateLeft(ActionEvent event) {
public void rotateLeft() {
imageView.setRotate(270);
}

@FXML
public void turnOver(ActionEvent event) {
public void turnOver() {
imageView.setRotate(180);
}

@FXML
public void back(ActionEvent event) {
public void back() {
imageView.setRotate(0);
}

Expand Down
Loading

0 comments on commit 3000778

Please sign in to comment.