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

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

Java API для поворота и отражения изображений

Aspose.Imaging for Java — это API для обработки изображений, который позволяет работать с широким спектром форматов изображений. API значительно упрощает работу с изображениями без написания большого количества кода. Вы можете загрузить API или установить его в свои Java-приложения, используя следующие конфигурации Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging-java</artifactId>
    <version>21.12</version>
    <classifier>jdk16</classifier>
</dependency>

Повернуть и отразить изображение в Java

Вы можете либо повернуть изображение под определенным углом, либо под стандартными углами поворота, которые составляют 90, 180 и 270 градусов. Кроме того, изображение можно перевернуть по горизонтали или по вертикали. Aspose.Imaging for Java предоставляет единый метод для поворота и отражения изображения. Перечисление RotateFlipType используется для указания угла поворота и типа отражения. Над изображением можно выполнить одну из следующих операций:

  • Повернуть изображение
  • Перевернуть изображение
  • Поворачивайте и переворачивайте изображение одновременно

Повернуть изображение в Java

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

  • Rotate180FlipNone: поворот на 180 градусов без отражения
  • Rotate270FlipNone: вращение на 270 градусов без отражения
  • Rotate90FlipNone: поворот на 90 градусов без отражения

Давайте посмотрим, как повернуть изображение на 270 градусов в Java.

  • Во-первых, используйте класс Image для загрузки изображения.
  • Затем используйте метод Image.rotateFlip(RotateFlipType.Rotate270FlipNone), чтобы повернуть изображение на 270 градусов.
  • Наконец, сохраните полученное изображение с помощью метода Image.save(string).

В следующем фрагменте кода показано, как повернуть изображение в Java.

// Загрузить изображение
RasterImage image = (RasterImage) Image.load("image.bmp");

// Повернуть изображение
image.rotateFlip(RotateFlipType.Rotate270FlipNone);

// Сохранить изображение
image.save("rotated-image.bmp");

Ниже приведены входное изображение (слева) и результирующее изображение (справа), которое мы получаем после поворота.

повернуть изображение в java

Повернуть изображение

Перевернуть изображение в Java

Чтобы перевернуть изображение, используются следующие значения RotateFlipType.

  • RotateNoneFlipX: нет вращения с горизонтальным отражением
  • RotateNoneFlipY: без вращения с вертикальным отражением
  • RotateNoneFlipXY: без вращения с горизонтальным и вертикальным отражением

Ниже приведены шаги, чтобы перевернуть изображение в Java.

  • Сначала загрузите изображение с помощью класса Image.
  • Затем используйте метод Image.rotateFlip(RotateFlipType.RotateNoneFlipX), чтобы отразить изображение по горизонтали.
  • Наконец, сохраните полученное изображение с помощью метода Image.save(string).

В следующем примере кода показано, как перевернуть изображение.

// Загрузить изображение
RasterImage image = (RasterImage) Image.load("image.bmp");

// Перевернуть изображение
image.rotateFlip(RotateFlipType.RotateNoneFlipX);

// Сохранить изображение
image.save("rotated-image.bmp");

Ниже приведены входное изображение и результирующее перевернутое изображение.

Перевернуть изображение в Java

Перевернуть изображение

Повернуть и отразить изображение в Java

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

  • Rotate180FlipX: поворот на 180 градусов с горизонтальным отражением
  • Rotate180FlipXY: поворот на 180 градусов с горизонтальным и вертикальным отражением
  • Rotate180FlipY: поворот на 180 градусов с вертикальным отражением
  • Rotate270FlipX: поворот на 270 градусов с горизонтальным отражением
  • Rotate270FlipXY: вращение на 270 градусов с горизонтальным и вертикальным отражением
  • Rotate270FlipY: вращение на 270 градусов с вертикальным отражением
  • Rotate90FlipX: поворот на 90 градусов с горизонтальным отражением
  • Rotate90FlipXY: поворот на 90 градусов с горизонтальным и вертикальным отражением
  • Rotate90FlipY: поворот на 90 градусов с вертикальным отражением

Ниже приведены шаги для одновременного поворота и отражения изображения в Java.

  • Во-первых, используйте класс Image для загрузки изображения.
  • Затем используйте метод Image.rotateFlip(RotateFlipType.Rotate180FlipX), чтобы повернуть и отразить изображение.
  • Наконец, сохраните полученное изображение с помощью метода Image.save(string).

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

// Загрузить изображение
RasterImage image = (RasterImage) Image.load("image.bmp");

// Повернуть и отразить изображение
image.rotateFlip(RotateFlipType.Rotate180FlipX);

// Сохранить изображение
image.save("rotated-image.bmp");

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

Повернуть и отразить изображение в Java

Повернуть и отразить изображение

Повернуть изображение на определенный угол

Вы также можете повернуть изображение на угол, отличный от 90, 180 и 270. Для этого API предоставляет метод Image.rotate(float angle), который принимает угол поворота в качестве параметра. В следующем примере кода показано, как повернуть изображение на 20 градусов в Java.

// Загрузить изображение
RasterImage image = (RasterImage) Image.load("image.bmp");

// Кэшировать изображение для лучшей производительности
if (!image.isCached()) {
  image.cacheData();
}

// Повернуть на 20 градусов, сохраняя размер изображения
image.rotate(20f);

// Сохранить изображение
image.save("rotated-image.bmp");

Ниже приведен вывод приведенного выше примера кода.

повернуть изображение под определенным углом в java

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию для использования Aspose.Imaging for Java без ограничений на пробную версию.

Вывод

В этой статье вы узнали, как вращать и переворачивать изображения в Java. Кроме того, вы видели, как поворачивать изображение, переворачивать изображение, а также поворачивать и переворачивать изображение одновременно. Кроме того, в статье также рассказывается, как повернуть изображение на определенный угол, отличный от 90, 180 и 270 градусов. Если вы хотите узнать больше об API обработки изображений Java, посетите документацию. Кроме того, вы можете скачать образцы исходного кода API с GitHub. В случае возникновения вопросов вы можете связаться с нами на нашем форуме.

Смотрите также