Java Reference
In-Depth Information
}
private void doSaveImage() {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = fileChooser.showSaveDialog(this);
if (result != JFileChooser.APPROVE_OPTION)
return;
File saveFile = fileChooser.getSelectedFile();
if (!saveFile.getAbsolutePath().toLowerCase().endsWith(".png"))
saveFile = new File(saveFile.getAbsolutePath() + ".png");
BufferedImage image = new BufferedImage(
paintPanel.getSize().width,
paintPanel.getSize().height,
BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < image.getWidth(); x++) {
for (int y = 0; y < image.getHeight(); y++) {
image.setRGB(x, y, Color.white.getRGB());
if (paintPanel.isPixel(new Point(x, y))) {
image.setRGB(x, y, Color.black.getRGB());
}
}
}
try {
ImageIO.write(image, "png", saveFile);
} catch (IOException e) {
return;
}
}
private void doLoadImage() {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = fileChooser.showOpenDialog(this);
if (result != JFileChooser.APPROVE_OPTION)
return;
BufferedImage image;
File openFile = fileChooser.getSelectedFile();
try (FileInputStream fis = new FileInputStream(openFile)) {
image = ImageIO.read(fis);
} catch (IOException e) {
return;
}
if (image == null)
return;
paintPanel.clear();
Set<Point> blackPixels = new HashSet<Point>();
for (int x = 0; x < image.getWidth(); x++) {
for (int y = 0; y < image.getHeight(); y++) {
Color c = new Color(image.getRGB(x, y));
if ((c.getBlue() < 128 || c.getRed() < 128 || c.getGreen() < 128)
&& c.getAlpha() == 255) {
blackPixels.add(new Point(x, y));
}
}
}
Search WWH ::




Custom Search