Rotar o voltear imágenes en Java

La rotación y el volteo de imágenes se encuentran entre las características clave de los editores de imágenes. Mientras trabaja con imágenes o crea su propio editor de imágenes en Java, es posible que deba implementar estas características. Para lograrlo, este artículo muestra cómo rotar y voltear imágenes mediante programación en Java. En particular, cubriremos cómo rotar una imagen, voltear una imagen y rotar y voltear una imagen al mismo tiempo.

API de Java para rotar y voltear imágenes

Aspose.Imaging for Java es una API de procesamiento de imágenes que le permite manipular una amplia gama de formatos de imagen. La API facilita bastante la manipulación de imágenes sin escribir mucho código. Puede descargar la API o instalarla en sus aplicaciones Java utilizando las siguientes configuraciones de 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>

Rotar y voltear una imagen en Java

Puede rotar una imagen en un ángulo particular o en los ángulos de rotación estándar que son 90, 180 y 270 grados. Además, la imagen se puede voltear horizontal o verticalmente. Aspose.Imaging for Java proporciona un único método para rotar y voltear una imagen. La enumeración RotateFlipType se usa para especificar el ángulo de rotación y el tipo de volteo. Puede realizar una de las siguientes operaciones en una imagen:

  • Girar una imagen
  • Voltear una imagen
  • Rotar y voltear una imagen al mismo tiempo

Rotar una imagen en Java

Para rotar una imagen sin voltearla, puede elegir uno de los siguientes valores de la enumeración RotateFlipType.

  • Rotate180FlipNone: rotación de 180 grados sin voltear
  • Rotate270FlipNone: rotación de 270 grados sin voltear
  • Rotate90FlipNone: rotación de 90 grados sin voltear

Veamos cómo rotar una imagen a 270 grados en Java.

El siguiente fragmento de código muestra cómo rotar una imagen en Java.

// Cargar imagen
RasterImage image = (RasterImage) Image.load("image.bmp");

// Girar la imagen
image.rotateFlip(RotateFlipType.Rotate270FlipNone);

// Guardar imagen
image.save("rotated-image.bmp");

Las siguientes son la imagen de entrada (izquierda) y la imagen resultante (derecha) que obtenemos después de la rotación.

rotar una imagen en java

Girar una imagen

Voltear una imagen en Java

Para voltear una imagen, se utilizan los siguientes valores de RotateFlipType.

  • RotateNoneFlipX: sin rotación con volteo horizontal
  • RotateNoneFlipY: sin rotación con volteo vertical
  • RotateNoneFlipXY: sin rotación con volteo horizontal y vertical

Los siguientes son los pasos para voltear una imagen en Java.

El siguiente ejemplo de código muestra cómo voltear una imagen.

// Cargar imagen
RasterImage image = (RasterImage) Image.load("image.bmp");

// Voltear la imagen
image.rotateFlip(RotateFlipType.RotateNoneFlipX);

// Guardar imagen
image.save("rotated-image.bmp");

Las siguientes son la imagen de entrada y la imagen invertida resultante.

Voltear una imagen en Java

Voltear una imagen

Rotar y voltear una imagen en Java

En las secciones anteriores, ha visto cómo rotar una imagen o voltearla. Sin embargo, en algunos casos, debe realizar ambas operaciones al mismo tiempo. Para lograr esto, se utilizan los siguientes valores de RotateFlipType.

  • Rotate180FlipX: rotación de 180 grados con volteo horizontal
  • Rotate180FlipXY: rotación de 180 grados con volteo horizontal y vertical
  • Rotate180FlipY: rotación de 180 grados con volteo vertical
  • Rotate270FlipX: rotación de 270 grados con volteo horizontal
  • Rotate270FlipXY: rotación de 270 grados con volteo horizontal y vertical
  • Rotate270FlipY: rotación de 270 grados con volteo vertical
  • Rotate90FlipX: rotación de 90 grados con volteo horizontal
  • Rotate90FlipXY: rotación de 90 grados con volteo horizontal y vertical
  • Rotate90FlipY: rotación de 90 grados con volteo vertical

Los siguientes son los pasos para rotar y voltear una imagen al mismo tiempo en Java.

El siguiente fragmento de código muestra cómo realizar la rotación y el volteo de una imagen al mismo tiempo.

// Cargar imagen
RasterImage image = (RasterImage) Image.load("image.bmp");

// Rotar y voltear la imagen
image.rotateFlip(RotateFlipType.Rotate180FlipX);

// Guardar imagen
image.save("rotated-image.bmp");

La siguiente es la imagen resultante (derecha) que obtenemos después de aplicar la rotación y el volteo.

Rotar y voltear una imagen en Java

Girar y voltear una imagen

Rotar imagen en un ángulo particular

También puede rotar una imagen en un ángulo que no sea 90, 180 y 270. Para esto, la API proporciona el método Image.rotate(float angle) que acepta el ángulo de rotación como parámetro. El siguiente ejemplo de código muestra cómo rotar una imagen a 20 grados en Java.

// Cargar imagen
RasterImage image = (RasterImage) Image.load("image.bmp");

// Imagen de caché para un mejor rendimiento
if (!image.isCached()) {
  image.cacheData();
}

// Gire a 20 grados manteniendo el tamaño de la imagen
image.rotate(20f);

// Guardar imagen
image.save("rotated-image.bmp");

El siguiente es el resultado del ejemplo de código anterior.

rotar la imagen en un ángulo particular en Java

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar Aspose.Imaging for Java sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a rotar y voltear imágenes en Java. Además, ha visto cómo rotar una imagen, voltear una imagen y rotar y voltear una imagen al mismo tiempo. Además, el artículo también cubría cómo rotar una imagen en un ángulo particular que no sea 90, 180 y 270 grados. En caso de que desee explorar más sobre la API de procesamiento de imágenes de Java, visite documentación. Además, puede descargar las muestras del código fuente de la API desde GitHub. Si tiene alguna pregunta, puede comunicarse con nosotros en nuestro foro.

Ver también