public static BufferedImage resize(File file, int height) { try { BufferedImage image = ImageIO.read(file); if (image == null) return null; double factor = (double) height / image.getHeight(); return resize(image, (int) (image.getWidth() * factor), height); } catch (IOException e) { throw new IllegalArgumentException(e); } } }
private ImageAndFile getImageAndFile(int rowIndex) { ImageAndFile imageAndFile = indexToImageAndFile.get(rowIndex); if (imageAndFile == null) { NavigationPosition position = getPosition(rowIndex); if (position instanceof Wgs84Position) { Wgs84Position wgs84Position = (Wgs84Position) position; File file = wgs84Position.getOrigin(File.class); if (file != null && file.exists()) { BufferedImage resize = resize(file, IMAGE_HEIGHT_FOR_IMAGE_COLUMN); if(resize != null) { imageAndFile = new ImageAndFile(new ImageIcon(resize), file); indexToImageAndFile.put(rowIndex, imageAndFile); } } } } return imageAndFile; }