Bild zuschneiden in Java

Zeeshan Afridi 15 Februar 2024
  1. Zuschneiden eines Bildes in Java mit der Klasse BufferedImage
  2. Abschluss
Bild zuschneiden in Java

Das Zuschneiden von Bildern wird häufig verwendet, um störende Teile aus Bildern zu entfernen. Sie können ein Bild zuschneiden, um die Aufmerksamkeit auf ein bestimmtes Objekt im Rahmen zu lenken, und in diesem Artikel erfahren Sie, wie Sie Fotos in Java programmgesteuert zuschneiden.

Auch wenn kostenpflichtige Tools viele Verwendungsmöglichkeiten haben und Zeit sparen können, lohnt es sich immer, es auszuprobieren, wenn wir es innerhalb weniger Tage schaffen können. Dieser Beitrag richtet sich in erster Linie an Einsteiger, die durch den Verzicht auf teure Drittanbieter-Tools Geld sparen können. Wir werden die Funktion subimage aus der Klasse BufferedImage verwenden, um ein Bild in Java zuzuschneiden.

Zuschneiden eines Bildes in Java mit der Klasse BufferedImage

Bei der Erstellung dieser Beispiele wurde die Klasse BufferedImage berücksichtigt.

Syntax der Methode getSubimage() der Klasse BufferedImage:

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

Dieser Code gibt ein Teilbild zurück, dessen rechteckiger Bereich durch die vergangenen Eingaben bestimmt wird. Nachfolgend finden Sie eine Beschreibung der vier Parameter.

Parameter Beschreibung
X liefert die x-Koordinate der oberen linken Ecke des ausgewählten rechteckigen Bereichs.
Y stellt die y-Koordinate des bezeichneten rechteckigen Bereichs der oberen linken Ecke bereit.
Height die Höhe der rechteckigen Fläche wird angegeben.
Width legt fest, wie breit der rechteckige Bereich ist.

Es folgt das Bild, das wir zuschneiden werden.

Originalbild

Codebeispiel:

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);
    }
  }
}

Ausgang:

Bild in Java zuschneiden

Beachten Sie, dass ich meine in den Zeilen 10 und 16 bereitgestellt habe, aber Sie müssen Ihren Dateispeicherort angeben. Darüber hinaus können Sie dem Benutzer erlauben, zur Laufzeit die Werte X, Y, Breite und Höhe bereitzustellen, um Ihrem Code zusätzliche Flexibilität zu verleihen.

Hier suchen wir ein weiteres Beispiel, um ein Bild zuzuschneiden, benötigen wir einige Klassen in Java. Im Folgenden sind die erforderlichen Klassen aufgeführt, die vor dem Zuschneiden eines Bilds in Java importiert werden müssen.

Sie müssen die Klasse File importieren, um eine Bilddatei lesen und schreiben zu können. Diese Klasse repräsentiert im Allgemeinen Pfadnamen für Dateien und Verzeichnisse.

Import java.io.File

Die Klasse IOException dient der Fehlerbehandlung.

Import java.io.IOException

Wir verwenden die Klasse BufferedImage, um das Objekt BufferedImage zu erstellen, das das Bild enthält.

import java.awt.image.BufferedImage

Wir werden die Klasse ImageIO importieren, um die Operation Lesen/Schreiben auf einem Bild auszuführen. Techniken zum Lesen und Schreiben statischer Bilder sind in diesem Kurs verfügbar.

import javax.imageio.ImageIO

Verwenden mehrerer der eingebauten Methoden der Klasse 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();
    }
  }
}

Außerdem zeigt die Konsole nach der Programmausführung eine ausgeführte Meldung und ein neu erstelltes zugeschnittenes Bild unter dem angegebenen Pfad an.

Abschluss

Sie haben klar verstanden, wie man ein Bild in Java zuschneidet. Wir haben gezeigt, wie man ein Bild zuschneidet, dessen rechteckiger Bereich durch frühere Eingaben in einigen verschiedenen Methoden bestimmt wird, und wie die Klasse BufferedImage und ihre anderen eingebauten Methoden verwendet werden, um ein Bild in Java zuzuschneiden.

Darüber hinaus können Sie die Dokumentation verwenden, um mehr über das Zuschneiden von Java-Bildern zu erfahren. Da Sie diese Seite gelesen haben, wissen Sie wahrscheinlich, was das Zuschneiden von Bildern ist.

Es ist einfach das Entfernen der äußeren Teile eines Bildes, um den Rahmen zu verbessern, das Seitenverhältnis zu ändern usw. Jetzt können Sie dies sehr schnell tun, indem Sie die angegebenen Java-Codes verwenden.

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