Heim >Java >javaLernprogramm >Java-Programm zum Drehen von Bildern

Java-Programm zum Drehen von Bildern

PHPz
PHPznach vorne
2023-09-01 16:25:031290Durchsuche

Eine Bilddatei kann im oder gegen den Uhrzeigersinn gedreht werden. Um ein Bild zu drehen, müssen Sie eine zufällige Bilddatei herunterladen und in einem beliebigen Ordner auf Ihrem System speichern. Außerdem ist eine .pdf-Datei erforderlich und nach dem Öffnen der heruntergeladenen Bilddatei kann in dieser bestimmten .pdf-Datei ein gewisser Winkel gedreht werden. Bei einer 90-Grad-Drehung können uns die Ankerpunkte des neuen Bildes dabei helfen, die Drehung mithilfe der Übersetzungstransformation in Java durchzuführen. Der Ankerpunkt ist die Mitte eines bestimmten Bildes.

Algorithmus zum Drehen eines Bildes mithilfe von Java

Die Klasse „AffineTransformOp“ ist die einfachste Möglichkeit, eine Bilddatei mithilfe von Java zu drehen. Ein Benutzer kann die Bilddaten als gepuffertes Bild laden und die Rotationsoperation mithilfe des Ankerpunkts anwenden, um das neue gepufferte Bild für den nächsten Schritt zu erstellen Es wird empfohlen, für diese Vorgänge mit JDeli JPEG-Dateien zu verwenden (Dateityp mit großem Bereich).

Durch Drehen von Bildern mit einem Java-Programm können Programmierer einige integrierte Methoden wie die BufferedImage-Klasse und Color c verwenden.

Mit diesem Prozess müssen wir ein Bild als BufferedImage in Java laden, dann dieselbe Funktion verwenden, um das Bild zu drehen und die Daten in einer neuen Datei zu speichern.

Lassen Sie uns nun den Algorithmus besprechen, um die oben genannten Operationen umfassender zu verstehen -

  • Schritt 1 - Das Bild wird gelesen und geschrieben und in eine Dateiklasse importiert, die den Verzeichnispfad darstellt.

  • Schritt 2 - IOException verwenden: Fehler behandeln.

  • Schritt 3 - Um das jeweilige Bild zu speichern, verwenden Sie das Objekt namens BufferedImage, eine statische Methode zum Speichern der Daten im RAM.

  • Schritt 4 – Verwenden Sie ImageIO für Lese- und Schreibvorgänge.

  • Schritt 5 - Verwenden Sie die Graphics2D-Klasse, um 2D-Formen zu rendern.

Syntax

Code declaration: public static Image rotate(Image image, double angle)

Nach dieser Grammatik sind die Schritte zum Verstehen wie folgt:

  • Parameter −

    • Bild − Führen Sie den Rotationsvorgang aus

    • Winkel− Bogenrotation

  • Gib − die gedrehte Bilddatei zurück

Der folgende Prozess kann verwendet werden, um Bilddateien mit einem Java-Programm zu drehen -

  • Schritt 1 − Laden Sie die Bilddatei als BufferedImage in einer Java-Umgebung. So laden Sie eine Bilddatei in Java −

BufferedImage image = ImageIO.read(new File("C:\path\to\image name.jpg"));
  • Schritt 2− Drehen Sie das Bild um 90 Grad

  • Um eine Bilddatei um 90 Grad zu drehen, befolgen Sie den folgenden Code −

final double rads = Math.toRadians(90);
final Rotate rotate = new Rotate(90);
BufferedImage rotatedImage = rotate.apply(image);
  • Schritt 3 Speichern Sie die Bilddatei

Use Java ImageIO 
ImageIO.write(rotatedImage,"JPG",newFile("C:\path\to\rotatedImagename.jpg"));

Beispiel

import java.awt.*;
import java.awt.image.BufferedImage;
public class Main {
   public static Image rotate(Image image, double angle) {
      BufferedImage bufImg = toBufferedImage(image);
      double sin = Math.abs(Math.sin(angle)), cos = Math.abs(Math.cos(angle));
      int w = bufImg.getWidth(), h = bufImg.getHeight();
      int neww = (int) Math.floor(w * cos + h * sin), newh = (int) Math.floor(h * cos + w * sin);
      BufferedImage result = new BufferedImage(neww, newh, Transparency.TRANSLUCENT);
      Graphics2D g = result.createGraphics();
      g.translate((neww - w) / 2, (newh - h) / 2);
      g.rotate(angle, w / 2, h / 2);
      g.drawRenderedImage(bufImg, null);
      g.dispose();
      return result;
   } 
   public static BufferedImage toBufferedImage(Image image) {
      if (image instanceof BufferedImage) {
         return (BufferedImage) image;
      }
      BufferedImage buff = new BufferedImage(image.getWidth(null), image.getHeight(null),
      BufferedImage.TYPE_INT_ARGB);
      Graphics2D g = buff.createGraphics();
      g.drawImage(image, 0, 0, null);
      g.dispose();
      return buff;
   }
}

Rotation eines Bildes mit der BufferedImage-Funktion

Durch die Verwendung einer Try-Catch-Blockierungsmethode können wir die Ausnahmen behandeln, da sie den Codefluss stören können.

  • Dokumentklasse – Die Dokumentklasse wird hauptsächlich zur Anzeige von PDF-Dokumenten verwendet. In diesem speziellen Java-Programm müssen wir eine Dokumentklasse mit der Funktion ie.documentobj erstellen. Diese Funktion dient zum Öffnen und Schließen von PDF-Dateien.

  • PDF Writer-Klasse - Die Funktion unterstützt die PDF-, XML- und RTF-Dateigenerationen, um die Bilddateirotation zu codieren. Die Verzeichnisfunktion, die wir hier verwenden, ist fileOutputStream(), um eine Datei für einen Java-Code zu verarbeiten.

  • Ausgabefunktion − Output.pdf ist eine Funktionsklasse, die die Ausgabe nach der Ausführung von Operationen mit Java-Code darstellt. Diese Funktion hilft beim Abrufen der Ausgabe der bereitgestellten Eingabe.

  • Funktionen −

    • image class.imgage.scaleToFit() – Die Funktion hilft uns, eine Größe in der Eingabedatei voreinzustellen.

    • imageobj.setRotationDegrees() – der Codierer kann dies verwenden, um das Bild in einem bestimmten Winkel zu drehen. Es kann als Parameter in der von uns verwendeten Methode verwendet werden.

    • documentobj.open() – Diese Funktion hilft Benutzern, Dateien während des Betriebs zu öffnen.

    • documentobj.close() – Verwenden Sie diese Funktion, um eine .pdf-Datei zu schließen.

Beispiel

package JavaApplication29;
import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;

public class JavaApplication29 {
   public static void main(String[] args) {
      try {
         Document documentobj = new Document(PageSize.A4, 20, 20, 20, 20);
         PdfWriter.getInstance(documentobj, new FileOutputStream("output.pdf"));
         documentobj.open();
         Image imageobj = Image.getInstance("C:\Users\lenovo\Desktop\RDD\Logo Org.jpg");
         imageobj.scaleToFit(200f, 200f);
         imageobj.setRotationDegrees(90);
         documentobj.add(imageobj);
         documentobj.close();
         System.out.println("Task completed");
      } catch (Exception e) {
         System.out.println("Exception occurred");
      }
   }
}

Ausgabe

Konsolenanzeigedimensionen und Ausführungs-Popups durch Codierung mit möglichen Methoden im Programm. Nach der Drehung wird ein neues Bild gespeichert.

Java-Programm zum Drehen von Bildern

Fazit

In diesem Artikel hilft der oben beschriebene Prozess beim Drehen von Bilddateien. Für eine 90-Grad-Drehung muss das Programm ein neues Bild erstellen und alle Parameter ändern. Da sich der Ankerpunkt immer noch in der Bildmitte befindet, ist der Vorgang für die Drehung im und gegen den Uhrzeigersinn derselbe.

Das obige ist der detaillierte Inhalt vonJava-Programm zum Drehen von Bildern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Was sind Java AWT-Grafiken?Nächster Artikel:Was sind Java AWT-Grafiken?