package edu.mbl.jif.imagej;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import javax.imageio.*;
public class Converter extends JFrame {
JLabel promptLabel;
JTextField prompt;
JButton promptButton;
JFileChooser fileChooser;
JComboBox comboBox;
JButton saveButton;
public Converter() {
super("Image Conversion");
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container contentPane = getContentPane();
JPanel inputPanel = new JPanel();
promptLabel = new JLabel("Filename:");
inputPanel.add(promptLabel);
prompt = new JTextField(20);
inputPanel.add(prompt);
promptButton = new JButton("Browse");
inputPanel.add(promptButton);
contentPane.add(inputPanel, BorderLayout.NORTH);
fileChooser = new JFileChooser();
promptButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
int returnValue =
fileChooser.showOpenDialog(null);
if (returnValue ==
JFileChooser.APPROVE_OPTION) {
File selectedFile =
fileChooser.getSelectedFile();
if (selectedFile != null) {
prompt.setText(selectedFile.getAbsolutePath());
}
}
}
}
);
JPanel outputPanel = new JPanel();
String writerFormats[] =
ImageIO.getWriterFormatNames();
ComboBoxModel comboBoxModel = new
DefaultComboBoxModel(writerFormats);
comboBox = new JComboBox(comboBoxModel);
outputPanel.add(comboBox);
saveButton = new JButton("Save");
outputPanel.add(saveButton);
saveButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String name = prompt.getText();
File file = new File(name);
if (file.exists()) {
BufferedImage image =
ImageIO.read(file.toURL());
if (image == null) {
System.err.println("Invalid input file format");
} else {
String selection =
(String)comboBox.getSelectedItem();
String outputFilename = name +
"." + selection;
File outputFile = new File(outputFilename);
boolean found = ImageIO.write(image,
selection, outputFile);
if (found) {
JDialog window = new JDialog();
Container windowContent =
window.getContentPane();
BufferedImage newImage =
ImageIO.read(outputFile);
JLabel label = new JLabel(new
ImageIcon(newImage));
JScrollPane pane = new
JScrollPane(label);
windowContent.add(pane,
BorderLayout.CENTER);
window.setSize(300, 300);
window.setVisible(true);
} else {
System.err.println("Error saving");
}
}
} else {
System.err.println("Bad filename");
}
} catch (MalformedURLException mur) {
System.err.println("Bad filename");
} catch (IOException ioe) {
System.err.println("Error reading file");
}
}
}
);
contentPane.add(outputPanel, BorderLayout.SOUTH);
}
public static void main(String args[]) {
JFrame frame = new Converter();
frame.pack();
frame.setVisible(true);
}
}