#java #image #resize #interpolation #bufferedimage
#java #изображение #изменение размера #интерполяция #bufferedimage
Вопрос:
моя цель — взять массив с плавающей точкой, создать изображение, изменить размер изображения, а затем считывать массив с плавающей точкой из измененного изображения.
Данные, которые я загружаю в само изображение, не соответствуют истинной графике, но я пытаюсь найти обходной путь для интерполяции данных при изменении размера массива с плавающей точкой.
Из проведенного мной исследования кажется, что необходимые шаги:
- Создайте объект WritableRaster и передайте ему массив с плавающей запятой
- Отправьте этот объект WritableRaster в объект BufferedImage
- Изменение размера объекта BufferedImage (с использованием билинейной интерполяции)
- Каким-то образом получить массив с плавающей запятой из BufferedImage
Помощь, советы и пример кода были бы очень признательны!!! Мои мозги сегодня поджарились.
Комментарии:
1. Какой диапазон у ваших поплавков?
2. Это одномерный массив чисел с плавающей запятой, который может иметь любое допустимое значение с плавающей запятой.
Ответ №1:
Если вы преобразуете числа с плавающей запятой в целые числа, вы можете создать BufferedImage
из них непосредственно с помощью BufferedImage.setRGB(int, int, int, int, int[], int, int)
Используйте BufferedImage.getScaledInstance()
для его масштабирования, затем используйте соответствующий метод getRGB() для приведенного выше setRGB() .