Comment augmenter la luminosité d'une image en java?


Ce que j'essaie de faire, c'est d'utiliser des boucles for pour augmenter la luminosité d'une image. J'essaie d'utiliser des boucles for pour trouver chaque pixel et changer la luminosité d'une certaine quantité. Je veux créer un tableau et enregistrer l'image dans ce tableau et ensuite, il permet d'imprimer la nouvelle image dans le même dossier. Aussi dans mon code j'ai fait une méthode de réflexion qui prend chaque pixel et reflète l'image verticalement. Pour exécuter le programme, l'utilisateur doit taper le nom de l'image et le nom du fichier de sortie en CMD. Voici tout mon code:

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;

public class ImageProcessor {
    public static void main(String[] args){


    if(args.length < 3){
        System.out.println("Not enough arguments");
        System.exit(-1);
        }
        String function = args[0];
        if (function.equals("-reflectV"))
      {
      String inputFileName = args[1];
      String outputFileName = args[2];

       int [][] imageArr = readGrayscaleImage(inputFileName);
       int [][] reflectedArr = reflectV(imageArr);

       writeGrayscaleImage(outputFileName, reflectedArr);
      }
      else if (function.equals("-ascii")){
      String inputFileName = args[1];
      String outputFileName = args[2];

      int [][] imageArr = readGrayscaleImage(inputFileName);
      int [][] reflectedArr = reflectV(imageArr);
      try{
      PrintStream output = new PrintStream(new File("output.txt"));
      }
      catch (java.io.FileNotFoundException ex) {
      System.out.println("Error: File Not Found");
      System.exit(-1);
      }
      }

     else if (function.equals("-adjustBrightness")){
        String amount = args[1];
        int a = Integer.parseInt(amount);
        System.out.print(a)
 }

     public static int[][] reflectV(int[][] arr){
        int[][] reflected = new int[arr.length][arr[0].length];
        for(int i=0; i< arr.length; i++){ 
            for(int j=0; j<arr[i].length;j++){
                reflected[i][j] = arr[i][arr[i].length-1-j];
            }
        }

        return reflected;
    }

    public static int[][] readGrayscaleImage(String filename) {
        int [][] result = null; //create the array
        try {
            File imageFile = new File(filename);    //create the file
            BufferedImage image = ImageIO.read(imageFile);
            int height = image.getHeight();
            int width  = image.getWidth();
            result = new int[height][width];        //read each pixel value
            for (int x = 0; x < width; x++) {
                for (int y = 0; y < height; y++) {
                    int rgb = image.getRGB(x, y);
                    result[y][x] = rgb & 0xff;
                }
            }
        }
        catch (IOException ioe) {
            System.err.println("Problems reading file named " + filename);
            System.exit(-1);
        }
        return result;  //once we're done filling it, return the new array
    }


    public static void writeGrayscaleImage(String filename, int[][] array) {
        int width = array[0].length;
        int height = array.length;

        try {
            BufferedImage image = new BufferedImage(width, height,
                BufferedImage.TYPE_INT_RGB);    //create the image

            //set all its pixel values based on values in the input array
            for (int x = 0; x < width; x++) {
                for (int y = 0; y < height; y++) {
                    int rgb = array[y][x];
                    rgb |= rgb << 8;
                    rgb |= rgb << 16;
                    image.setRGB(x, y, rgb);
                }
            }

            //write the image to a file
            File imageFile = new File(filename);
            ImageIO.write(image, "jpg", imageFile);
        }
        catch (IOException ioe) {
            System.err.println("Problems writing file named " + filename);
            System.exit(-1);
        }
    }
}
Author: David Rolfe, 2014-11-20