У меня есть куча 48x48 изображений, в которых мне нужны 16x16 версии, и вместо того, чтобы хранить версии 16x16, я хочу изменить их на лету. Мой текущий код выглядит следующим образом (model.icon() возвращает 48x48 изображение):Как изменить размер изображения с помощью Java?
Icon icon = model.icon();
Image image = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
return new ImageIcon(image.getScaledInstance(16, 16, Image.SCALE_AREA_AVERAGING));
К сожалению, когда этот код выполняется, получает 16x16 черный квадрат вместо картинки.
Ах, ха! Благодаря! Это оно! –
Er, единственная проблема заключается в том, что 'Graphics.drawImage()' принимает 'Image' вместо' Icon'. –
Да, вы правы - я только что обновил свой код - вам нужно вызвать icon.getImage(), как вы, вероятно, поняли из ответа andrewmu :) – William