Преобразование изображений Java

Я должен создать 3-е воздействие глубины для своего изображения. Номер 1 - то, что я имею, и номер 2 является формой, где я хочу преобразовать номер 1. Так есть ли какой-либо метод для этого в стандарте Java графические библиотеки или некоторые другие библиотеки с открытым исходным кодом?

alt text

7
задан Glorfindel 1 August 2019 в 09:11
поделиться

2 ответа

Это невозможно сделать с помощью класса AffineTransform . См. Статью в Википедии об аффинном преобразовании:

В общем, аффинное преобразование состоит из линейных преобразований (вращения, масштабирования или сдвига) и сдвига (или «сдвига»).

Что вам нужно, так это некоторая форма преобразования перспективы. Из http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/PerspectiveTransform.html

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

Из http://answers.google.com/answers/threadview/id/515829.html

Java Advanced Imaging API позволяет легко выполнять перспективное преобразование.

Как и в Java2D и Java3D, эти процедуры оптимизированы, они не запускаются обычным образом интерпретируемым java - поэтому они очень быстрые, как хорошо.

JAI можно загрузить с

http://java.sun.com/products/java-media/jai/downloads/download-1_1_2.html

Вы можете найти информацию о том, как запустить перспективное преобразование в :

http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/

5
ответ дан 7 December 2019 в 12:14
поделиться

Если вы хотите быстро рисовать в 3D, я бы посоветовал изучить решение для 3D-рендеринга, такое как OpenGL / JOGL.

Если это всего лишь быстрое однократное преобразование, то вы можете довольно легко смоделировать это,

  • Цикл по всем линиям в 2.
  • Масштабирование соответствующей линии в 1. и рисование ее поверх линии в 2. , растягивая его до нужной пропорции (вам понадобятся некоторые базовые математические вычисления)
0
ответ дан 7 December 2019 в 12:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: