Я пытаюсь изменить размер изображения до 50 * 50 пикселей. Я беру изображения с их пути, хранящегося в базе данных. У меня нет проблем с получением изображений и их отображением. Мне просто интересно, в какой момент я должен попытаться изменить размеры изображений. Должно ли это быть, когда я получаю изображение в виде буферизованного изображения или просто пытаюсь изменить размер значка?
while (rs.next()) {
i = 1;
imagePath = rs.getString("path");
System.out.println(imagePath + "\n");
System.out.println("TESTING - READING IMAGE");
System.out.println(i);
myImages[i] = ImageIO.read(new File(imagePath));
**resize(myImages[i]);**
imglab[i] = new JLabel(new ImageIcon(myImages[i]));
System.out.println(i);
imgPanel[i]= new JPanel();
imgPanel[i].add(imglab[i]);
loadcard.add(imgPanel[i], ""+i);
i++;
Приведенный выше код извлекает изображение и присваивает его ImageIcon, а затем JLabel. Я попытался изменить размер буферизованного изображения, используя метод изменения размера ниже. Не могли бы вы, ребята, пролить свет на то, почему это не работает для меня? Не получая никаких ошибок, просто изображение остается в исходном размере.
public static BufferedImage resize(BufferedImage img) {
int w = img.getWidth();
int h = img.getHeight();
int newH = 50;
int newW = 50;
BufferedImage dimg = dimg = new BufferedImage(newW, newH, img.getType());
Graphics2D g = dimg.createGraphics();
System.out.println("Is this getting here at all " + dimg);
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null);
g.dispose();
return dimg;
}