Преобразование массива с плавающей точкой в изображение

#java #image #resize #interpolation #bufferedimage

#java #изображение #изменение размера #интерполяция #bufferedimage

Вопрос:

моя цель — взять массив с плавающей точкой, создать изображение, изменить размер изображения, а затем считывать массив с плавающей точкой из измененного изображения.

Данные, которые я загружаю в само изображение, не соответствуют истинной графике, но я пытаюсь найти обходной путь для интерполяции данных при изменении размера массива с плавающей точкой.

Из проведенного мной исследования кажется, что необходимые шаги:

  1. Создайте объект WritableRaster и передайте ему массив с плавающей запятой
  2. Отправьте этот объект WritableRaster в объект BufferedImage
  3. Изменение размера объекта BufferedImage (с использованием билинейной интерполяции)
  4. Каким-то образом получить массив с плавающей запятой из BufferedImage

Помощь, советы и пример кода были бы очень признательны!!! Мои мозги сегодня поджарились.

Комментарии:

1. Какой диапазон у ваших поплавков?

2. Это одномерный массив чисел с плавающей запятой, который может иметь любое допустимое значение с плавающей запятой.

Ответ №1:

Если вы преобразуете числа с плавающей запятой в целые числа, вы можете создать BufferedImage из них непосредственно с помощью BufferedImage.setRGB(int, int, int, int, int[], int, int)

Используйте BufferedImage.getScaledInstance() для его масштабирования, затем используйте соответствующий метод getRGB() для приведенного выше setRGB() .