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.
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:
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 is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn