Cambiar el tamaño de la imagen usando el redimensionador de imágenes de Java

Los editores de imágenes proporcionan una función de cambio de tamaño que le permite modificar el tamaño de las imágenes según sus requisitos. Mientras diseña un editor de imágenes o procesa imágenes desde dentro de sus aplicaciones Java, es posible que necesite cambiar el tamaño de las imágenes mediante programación. Para lograr eso, este artículo cubre cómo cambiar el tamaño de las imágenes en Java. Además, también aprenderá cómo cambiar el tamaño de las imágenes utilizando diferentes técnicas de cambio de tamaño.

API de Java para cambiar el tamaño de las imágenes

Aspose.Imaging for Java es una API de procesamiento de imágenes ampliamente utilizada que le permite manipular imágenes con bastante facilidad. Usaremos esta API para cambiar el tamaño de las imágenes en este artículo. Puede descargar la API desde la sección de descargas. Además, puede instalarlo desde Maven usando la siguiente configuración en pom.xml.

<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>

Cambiar el tamaño de las imágenes ráster en Java

Aspose.Imaging for Java proporciona dos formas de cambiar el tamaño de las imágenes rasterizadas. Uno es el cambio de tamaño simple en el que proporciona la altura y el ancho de la imagen resultante. Mientras que, en el segundo método, también especifica un tipo de cambio de tamaño que le dice a la API sobre la técnica de cambio de tamaño que debe usarse, como el remuestreo de Lanczos, el remuestreo del vecino más cercano, etc. En las siguientes secciones, discutiremos cómo implementar cada uno de estos métodos para cambiar el tamaño de las imágenes.

Cambiar el tamaño de una imagen con el cambio de tamaño simple

En este método de cambio de tamaño, solo tiene que proporcionar las dimensiones de la imagen resultante. Los siguientes son los pasos para cambiar el tamaño de una imagen en Java.

  • Primero, use la clase Image para cargar la imagen que desea cambiar de tamaño.
  • Luego, llama al método Image.resize(int, int) para cambiar el tamaño de la imagen.
  • Finalmente, guarde la imagen resultante usando el método Image.save(string).

El siguiente fragmento de código cambia el tamaño de una imagen a la altura y el ancho proporcionados.

// Cargar imagen
Image image = Image.load("aspose-logo.jpg");

// Definir nuevas dimensiones
image.resize(300, 300);

// Guardar imagen
image.save("SimpleResizing_out.jpg");

Cambiar el tamaño de la imagen usando un tipo de cambio de tamaño

Aspose.Imaging for Java proporciona una amplia gama de técnicas de cambio de tamaño, que se enumeran aquí. Puede elegir uno que se adapte a su escenario. Por ejemplo, se recomienda el remuestreo de Lanczos para cambiar el tamaño de la imagen de calidad, sin embargo, funciona más lento. Mientras que, para cambiar el tamaño rápidamente, se usa el remuestreo del vecino más cercano, sin embargo, compromete la calidad de la imagen. Los siguientes son los pasos para cambiar el tamaño de una imagen utilizando una técnica de cambio de tamaño particular.

El siguiente ejemplo de código muestra cómo cambiar el tamaño de una imagen usando una técnica de cambio de tamaño particular.

// Cargar imagen
Image image = Image.load("aspose-logo.jpg");

// Definir nuevas dimensiones y tipo de cambio de tamaño
image.resize(300, 300, ResizeType.LanczosResample);

// Guardar imagen
image.save("SimpleResizing_out.jpg");

Cambio de tamaño de imagen proporcional en Java

La relación de aspecto se calcula al cambiar el tamaño de las imágenes para evitar imágenes resultantes reducidas o escaladas. Sin embargo, cualquier cálculo erróneo de la relación de aspecto puede causar imágenes estiradas. Para deshacerse de estos problemas, puede dejar que la API se encargue de la relación de aspecto. Los siguientes son los pasos para cambiar el tamaño de una imagen proporcionalmente.

También puede especificar un tipo de cambio de tamaño particular mientras cambia el tamaño de la imagen proporcionalmente usando los métodos de sobrecarga Image.resizeWidthProportionally(int, ResizeType) y Image.resizeHeightProportionally(int, ResizeType).

El siguiente ejemplo de código Java muestra cómo cambiar el tamaño de una imagen proporcionalmente.

// Cargar imagen
Image image = Image.load("aspose-logo.jpg");

// Definir nuevas dimensiones
int newWidth = image.getWidth() / 2;
image.resizeWidthProportionally(newWidth);
int newHeight = image.getHeight() / 2;
image.resizeHeightProportionally(newHeight);

// Guardar imagen
image.save("SimpleResizing_out.jpg");

Cambiar el tamaño de las imágenes vectoriales en Java

También puede cambiar el tamaño de una imagen vectorial y guardarla en un formato de imagen de trama, como PNG, JPEG, GIF, etc. El siguiente código demuestra cómo lograrlo en Java usando Aspose.Imaging.

// Cargar imagen vectorial
try (Image image = Image.load("image.svg"))
{
  	// Definir nuevas dimensiones
	image.resize(image.getWidth() * 10,image.getHeight() * 15);
  
  	// Guarda la imagen como PNG
	image.save("Logotype_10_15.png", new PngOptions());
}

Obtenga una licencia de API gratuita

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

Conclusión

En este artículo, ha aprendido cómo cambiar el tamaño de las imágenes mediante programación en Java. Además, el artículo ha cubierto cómo cambiar el tamaño de las imágenes utilizando diferentes técnicas, como el remuestreo de Lanczos, el remuestreo del vecino más cercano, etc. Además, también se analiza el cambio de tamaño de imagen proporcional y el cambio de tamaño de imágenes vectoriales. Puede visitar documentación para obtener más información sobre la API de procesamiento de imágenes de Java. Además, puede aprender de los ejemplos de código fuente disponibles en GitHub. Si tiene alguna pregunta, puede comunicarse con nosotros en nuestro foro.

Ver también