Задача: У меня есть некоторые изображения, я их уменьшаю и присоединяю к одному изображению. Но у меня есть небольшая проблема с реализацией:
Конкретная проблема: Я хочу изменить размер/масштабировать BufferedImage. Метод getScaledInstance возвращает объект Image, но я не могу передать его в BufferedImage:
Exception in thread "main" java.lang.ClassCastException: sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage
(я не знаю, почему это ToolkitImage вместо изображения...)
Я нашел решение:
Image tmp = bi.getScaledInstance(SMALL_SIZE, SMALL_SIZE, BufferedImage.SCALE_FAST);
BufferedImage buffered = new BufferedImage(SMALL_SIZE,SMALL_SIZE,BufferedImage.TYPE_INT_RGB);
buffered.getGraphics().drawImage(tmp, 0, 0, null);
Но это медленно, и я думаю, что должен быть лучший способ сделать это.
Мне нужен BufferedImage, потому что мне нужно, чтобы пиксели присоединились к маленьким изображениям.
Есть ли лучший (более удобный/быстрый) способ сделать это?
EDIT: Если я сначала передам изображение в ToolkitImage, у него есть метод getBufferedImage(). Но он всегда возвращает null. Вы знаете, почему?