ошибка при создании эскизов изображений в javafx - PullRequest
0 голосов
/ 20 февраля 2019

Я создал приложение для просмотра изображений, используя javafx.Я хочу отобразить все изображения в папке в виде миниатюр.

java.lang.OutOfMemoryError: Ошибка кучи Java

Ошибка при использовании приведенного ниже кода.Я также использовал System.gc(), но без улучшения.

GridPane thumbnails=new GridPane();
for (int row = 0; row < 1; row++) {
    for (int column = 0; column <= jFiles.size(); column++) {
        int newindex = column;
        String currentBackImage = FileHandler.CURRENT_DIR + "/" + jFiles.get(column).fullname;
        FileInputStream imageInput = new FileInputStream(new File(FileHandler.CURRENT_DIR + "/" + jFiles.get(column).fullname));

        String ext = currentBackImage.toLowerCase().substring(currentBackImage.lastIndexOf('.') + 1);
        if (ext.contains("tif")) {
            FileChannel channel = imageInput.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate((int) channel.size());
            channel.read(buffer);
            System.gc();
            img = mainController.load(buffer.array());
            imageInput.close();

        } else {
            System.gc();
            img = new Image(imageInput);
            imageInput.close();
        }

        StackPane stack = new StackPane();                   
        ImageView view = new ImageView();                  
        view.setImage(img); 
        stack.add(view);
        thumbnails.add(stack, row, column);
        imageInput.close();

    }
}
...