I am trying to make a simple program that loads an image, transforms it to grayscale and then save it to a file. Although it seems to work the file isn't being created (or at least i can't find it in my computer...)
import javax.imageio.*;
import java.awt.*;
import java.awt.Image;
import java.io.*;
import javax.swing.*;
import java.awt.image.BufferedImage;
public class ImageProcessing {
public static void main(String[] args) {
try {
ImageProcessing imageprocessing = new ImageProcessing();
} catch (Exception e) {}
}
public ImageProcessing() throws Exception {
try {
BufferedImage inImage = ImageIO.read(new File("myImage.jpeg"));
int width = inImage.getWidth(null);
System.out.println(width);
int height = inImage.getHeight(null);
System.out.println(height);
int[] rgbs = new int[width * height];
inImage.getRGB(0, 0, width, height, rgbs, 0, width);
int[] grayscale = new int[width * height];
int[] value = new int[width * height];
for (int j = 0; j < height; j++) {
for (int i = 0; i < width; i++) {
int alpha = (rgbs[j * width + i] >> 24) & 0xff;
int red = (rgbs[j * width + i] >> 16) & 0xff;
int green = (rgbs[j * width + i] >> 8) & 0xff;
int blue = (rgbs[j * width + i]) & 0xff;
value[j * width + i] = (red + green + blue);
if (value[j * width + i] > 255) {
grayscale[j * width + i] = 85;
}else
grayscale[j * width + i] = value[j * width + i]/3;
}
}
BufferedImage outImage = null;
outImage.setRGB(0, 0, width, height, grayscale, 0, width);
ImageIO.write(outImage, "jpg", new File("c:/myImage2.jpeg"));
} catch (Exception e) {}
}
}