Button to save out the colorized image

git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@907 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
Dave Hoover
2010-03-24 22:06:16 +00:00
parent 6d5c7af519
commit eb3673363e
@@ -48,6 +48,7 @@ import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
@@ -55,6 +56,7 @@ import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.filechooser.FileFilter;
import com.google.common.collect.Lists;
@@ -193,10 +195,14 @@ public class RecolorImage extends JPanel
hlay = new HGroupLayout();
hlay.setJustification(HGroupLayout.CENTER);
JPanel buttons = new JPanel(hlay);
JButton convert = new JButton("Convert");
convert.setActionCommand(CONVERT);
convert.addActionListener(this);
buttons.add(convert);
JButton button = new JButton("Convert");
button.setActionCommand(CONVERT);
button.addActionListener(this);
buttons.add(button);
button = new JButton("Save Snapshot");
button.setActionCommand(SAVE_COLORIZED_IMAGE);
button.addActionListener(this);
buttons.add(button);
add(buttons, VGroupLayout.FIXED);
// listen for mouse clicks
@@ -358,6 +364,28 @@ public class RecolorImage extends JPanel
if (result == JFileChooser.APPROVE_OPTION) {
setColorizeFile(_colChooser.getSelectedFile());
}
} else if (cmd.equals(SAVE_COLORIZED_IMAGE)) {
JFileChooser chooser = new JFileChooser(_chooser.getSelectedFile());
chooser.setFileFilter(new FileFilter() {
@Override public boolean accept (File f) {
return (f.isDirectory() || f.getName().endsWith(".png"));
}
@Override public String getDescription () {
return "PNG Files";
}
});
int result = chooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
try {
ImageIO.write((BufferedImage)((ImageIcon)_newImage.getIcon()).getImage(),
"png", chooser.getSelectedFile());
} catch (Exception e) {
JOptionPane.showMessageDialog(this,
"Error while saving image: " + e.getMessage(),
"Error Saving Image",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
@@ -589,6 +617,7 @@ public class RecolorImage extends JPanel
protected static final String BROWSE_FOR_IMAGE_FILE = "browse_image";
protected static final String RELOAD_IMAGE = "reload_image";
protected static final String BROWSE_FOR_COLORIZATION_FILE = "browse_colorize";
protected static final String SAVE_COLORIZED_IMAGE = "save_colorized";
protected static final String UPDATE_TARGET_COLOR = "update_target";
protected static final String CONVERT = "convert";