package javafximagefilechooser; import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javafx.application.Application; import javafx.embed.swing.SwingFXUtils; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.Menu; import javafx.scene.control.MenuBar; import javafx.scene.control.MenuItem; import javafx.scene.image.ImageView; import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; import javafx.stage.FileChooser; import javafx.stage.Stage; import javax.imageio.ImageIO; /** * * @web http://java-buddy.blogspot.com */ public class JavaFXImageFileChooser extends Application { @Override public void start(Stage primaryStage) { final FileChooser fileChooser = new FileChooser(); final Button openButton = new Button("Open Image"); openButton.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(final ActionEvent e) { setExtFilters(fileChooser); File file = fileChooser.showOpenDialog(primaryStage); if (file != null) { openNewImageWindow(file); } } }); StackPane root = new StackPane(); root.getChildren().add(openButton); Scene scene = new Scene(root, 400, 150); primaryStage.setTitle("java-buddy.blogspot.com"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } private void setExtFilters(FileChooser chooser){ chooser.getExtensionFilters().addAll( new FileChooser.ExtensionFilter("All Images", "*.*"), new FileChooser.ExtensionFilter("PNG", "*.png") ); } private void openNewImageWindow(File file){ Stage secondStage = new Stage(); MenuBar menuBar = new MenuBar(); Menu menuFile = new Menu("File"); MenuItem menuItem_Save = new MenuItem("Save Image"); menuFile.getItems().addAll(menuItem_Save); menuBar.getMenus().addAll(menuFile); Label name = new Label(file.getAbsolutePath()); BufferedImage bufferedImage = null; try { bufferedImage = ImageIO.read(file); } catch (IOException ex) { Logger.getLogger(JavaFXImageFileChooser.class.getName()).log(Level.SEVERE, null, ex); } ImageView imageView = new ImageView(); final BufferedImage imageToWrite = new BufferedImage( bufferedImage.getWidth(), bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB); imageToWrite.createGraphics().drawImage(bufferedImage, 0, 0, Color.WHITE, null); menuItem_Save.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Save Image"); File file = fileChooser.showSaveDialog(secondStage); if (file != null) { try { ImageIO.write(imageToWrite, "jpg", file); } catch (IOException ex) { Logger.getLogger( JavaFXImageFileChooser.class.getName()).log(Level.SEVERE, null, ex); } } } }); final VBox vbox = new VBox(); vbox.setAlignment(Pos.CENTER); vbox.setSpacing(10); vbox.setPadding(new Insets(0, 10, 0, 10)); vbox.getChildren().addAll(name, imageView); imageView.setFitHeight(400); imageView.setPreserveRatio(true); imageView.setImage(SwingFXUtils.toFXImage(bufferedImage, null)); imageView.setSmooth(true); imageView.setCache(true); Scene scene = new Scene(new VBox(), 400, 350); ((VBox)scene.getRoot()).getChildren().addAll(menuBar, vbox); secondStage.setTitle(file.getName()); secondStage.setScene(scene); secondStage.show(); } }
Showing posts with label ImageIO. Show all posts
Showing posts with label ImageIO. Show all posts
Saturday, December 27, 2014
JavaFX + ImageIO: Convert PNG file to JPG
This example show how to choose PNG file using JavaFX FileChooser, open with ImageIO (actually any supported image format), and save in JPG using ImageIO.
Wednesday, December 24, 2014
To list ImageIO supported read/write file format on your system
Example to list suffixes, format names and MIME types of supported image format on your system, by ImageIO, for read and write.
package javasupportedimageformat; import javax.imageio.ImageIO; /** * * @web http://java-buddy.blogspot.com */ public class JavaSupportedImageFormat { public static void main(String[] args) { //reader support System.out.println("ImageIO reader supported file suffixes:"); String readerFileSuffixes[] = ImageIO.getReaderFileSuffixes(); for(String f : readerFileSuffixes){ System.out.println(f); } System.out.println(); System.out.println("ImageIO reader supported format names:"); String readerFormatNames[] = ImageIO.getReaderFormatNames(); for(String f : readerFormatNames){ System.out.println(f); } System.out.println(); System.out.println("ImageIO reader supported MIME types:"); String readerMIMETypes[] = ImageIO.getReaderMIMETypes(); for(String f : readerMIMETypes){ System.out.println(f); } System.out.println(); //writer support System.out.println("ImageIO writer supported file suffixes:"); String writerFileSuffixes[] = ImageIO.getWriterFileSuffixes(); for(String f : writerFileSuffixes){ System.out.println(f); } System.out.println(); System.out.println("ImageIO writer supported format names:"); String writerFormatNames[] = ImageIO.getWriterFormatNames(); for(String f : writerFormatNames){ System.out.println(f); } System.out.println(); System.out.println("ImageIO writer supported MIME types:"); String writerMIMETypes[] = ImageIO.getWriterMIMETypes(); for(String f : writerMIMETypes){ System.out.println(f); } System.out.println(); } }
Subscribe to:
Posts (Atom)