Импорт изображения в градациях серого в буфер изображения - PullRequest
1 голос
/ 20 января 2020

В файле точек с запятой CSV я сохранил значения пикселей в градациях серого из моего изображения. Я хочу импортировать эти значения в мою программу как объект класса BufferedImage. Я могу только привести изображение более блеклым

Есть шаги:

    public static BufferedImage loadImageFromCSV(File file) throws Exception {

        BufferedImage bufferedImage = null;

        //load CSV file data to memory
        List<String> linesFromCsvFile = CSVUtils.parseCSV(file);
        //calculate width and height

        int width = getWidthFromCSVLines(linesFromCsvFile);
        int height = getHeightFromCSVLines(linesFromCsvFile);

        //get values form CSV lines
        Integer[][] pixels = asTwoDimensionalArray(linesFromCsvFile);

        //generate image
        bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
        for (int y=0; y<height; ++y) {
            for (int x=0; x<width; ++x) {
                int rgb = pixels[y][x] | (pixels[y][x] << 8) | (pixels[y][x] << 16);
                bufferedImage.setRGB(x, y, rgb );
            }
        }


        return  bufferedImage;
    }

Ниже слева изображение в градациях серого и справа импортированное изображение в мою программу: Example iamges

CSV-файл выглядит нормально : https://filebin.net/9mp7nifqu045b48e

Пожалуйста, помогите

...