Recortar imagen en Java

Zeeshan Afridi 15 febrero 2024
  1. Recorta una imagen en Java usando la clase BufferedImage
  2. Conclusión
Recortar imagen en Java

El recorte de imágenes se usa con frecuencia para eliminar partes molestas de las imágenes. Puede recortar una imagen para llamar la atención sobre un objeto en particular en el marco, y este artículo le enseñará cómo recortar fotos en Java mediante programación.

Aunque las herramientas pagas tienen muchos usos y pueden ahorrar tiempo, siempre vale la pena intentarlo cuando podemos hacerlo en cuestión de días. Esta publicación es principalmente para principiantes que pueden ahorrar dinero al evitar herramientas costosas de terceros. Usaremos la función subimage de la clase BufferedImage para recortar una imagen en Java.

Recorta una imagen en Java usando la clase BufferedImage

La clase BufferedImage se consideró al crear estos ejemplos.

Sintaxis del método getSubimage() de la clase BufferedImage:

public BufferedImage getSubimage(int X, int Y, int width, int height)

Este código devolverá una subimagen cuya región rectangular está determinada por las entradas anteriores. A continuación se muestra una descripción de los cuatro parámetros.

Parámetros Descripción
X proporciona la coordenada x de la esquina superior izquierda del área rectangular elegida.
Y proporciona la coordenada y de la región rectangular designada de la esquina superior izquierda.
Height se especifica la altura del área rectangular.
Width define el ancho del área rectangular.

A continuación se muestra la imagen que vamos a recortar.

Imagen original

Ejemplo de código:

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Main {
  public static void main(String[] args) {
    File imageFile = new File("/D:/test/image.jpg");
    BufferedImage bufferedImage = null;
    try {
      bufferedImage = ImageIO.read(imageFile);
      BufferedImage image = bufferedImage.getSubimage(0, 0, 50, 50);
      File pathFile = new File("/D:/test/image-crop.jpg");
      ImageIO.write(image, "jpg", pathFile);
    } catch (IOException e) {
      System.out.println(e);
    }
  }
}

Producción:

Recortar imagen en Java

Tenga en cuenta que proporcioné el mío en las líneas 10 y 16, pero debe proporcionar la ubicación de su archivo. Además, puede permitir que el usuario proporcione los valores X, Y, “ancho” y “alto” en tiempo de ejecución para darle flexibilidad adicional a su código.

Aquí estamos buscando otro ejemplo, para recortar una imagen, necesitamos algunas clases en Java. Las siguientes son las clases requeridas para importar antes de recortar una imagen en Java.

Debe importar la clase Archivo para leer y escribir en un archivo de imagen. Esta clase generalmente representa nombres de ruta para archivos y directorios.

Import java.io.File

La clase IOException se utiliza para manejar errores.

Import java.io.IOException

Usamos la clase BufferedImage para construir el objeto BufferedImage, que contiene la imagen.

import java.awt.image.BufferedImage

Importaremos la clase ImageIO para realizar la operación de lectura-escritura sobre una imagen. Las técnicas de lectura y escritura de imágenes estáticas están disponibles en esta clase.

import javax.imageio.ImageIO

Empleando varios de los métodos integrados de la clase BufferedImage.

// importing the necessary packages
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

// Main class
public class GFG {
  // Main driver method
  public static void main(String[] args) {
    // Using a try block, look for exceptions
    try {
      // Reading the original image from the local path by
      // creating an object of BufferedImage class
      BufferedImage originalImg = ImageIO.read(new File("D:/test/Image.jpeg"));

      // Fetching and printing alongside the
      // dimensions of original image using getWidth()
      // and getHeight() methods
      System.out.println(
          "Original Image Dimension: " + originalImg.getWidth() + "x" + originalImg.getHeight());

      // Creating a subimage of given dimensions
      BufferedImage SubImg = originalImg.getSubimage(50, 50, 50, 50);

      // Printing Dimensions of the new image created
      System.out.println(
          "Cropped Image Dimension: " + SubImg.getWidth() + "x" + SubImg.getHeight());

      // Creating a new file for the cropped image by
      // creating an object of the File class
      File outputfile = new File("D:/test/ImageCropped.jpeg");

      // Writing image in the new file created
      ImageIO.write(SubImg, "png", outputfile);

      // Display message on console representing
      // proper execution of program
      System.out.println("Cropped Image created successfully");
    }

    // Catch block to handle the exceptions
    catch (IOException e) {
      // Print the exception along with the line number
      // using printStackTrace() method
      e.printStackTrace();
    }
  }
}

Además, después de la ejecución del programa, la consola mostrará un mensaje ejecutado y una imagen recortada recién creada en la ruta especificada.

Conclusión

Has entendido claramente cómo recortar una imagen en Java. Hemos mostrado cómo recortar una imagen cuya región rectangular está determinada por entradas pasadas en algunos métodos diferentes y cómo la clase BufferedImage y sus otros métodos integrados se utilizan para recortar una imagen en Java.

Además, puede utilizar la documentación para obtener más información sobre el recorte de imágenes de Java. Como ha leído esta página, probablemente sepa qué es el recorte de imágenes.

Es simplemente la eliminación de las partes exteriores de una imagen para mejorar el marco, alterar la relación de aspecto, etc. Ahora puede hacerlo muy rápidamente utilizando los códigos Java dados.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn