Попробуйте этот код, он может быть вам полезен.
Считайте изображение как BufferedImage
BufferedImage img = null;
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File file = chooser.getSelectedFile();
try {
img = ImageIO.read(file );
} catch (IOException e) {
e.printStackTrace();
}
Измените размер BufferedImage
Image dimg = img.getScaledInstance(label.getWidth(), label.getHeight(), Image.SCALE_SMOOTH);
Убедитесь, чтоширина и высота надписи равны ширине и высоте исходного изображения.Другими словами, если изображение имеет размер 600 x 900 пикселей, масштабируется до 100 X 150. В противном случае изображение будет искажено.
ImageIcon imageIcon = new ImageIcon(dimg)