Масштабирование 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 (). Но это всегда возвращает ноль. Ты знаешь почему?