Масштабирование BufferedImage самый быстрый и простой способ

Задание: У меня есть несколько изображений, я уменьшаю их и соединяю в одно изображение. Но у меня есть небольшая проблема с реализацией:

Конкретная проблема: Я хочу изменить размер / масштабировать 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, потому что я должен получить пиксели, чтобы соединить маленькие изображения.

Есть ли лучший (лучше / быстрее) способ сделать это?

РЕДАКТИРОВАТЬ: Если я сначала приведу изображение к ToolkitImage, у него будет метод getBufferedImage (). Но это всегда возвращает ноль. Ты знаешь почему?

Ответы на вопрос(7)

Ваш ответ на вопрос