Maison >Java >javaDidacticiel >Programme Java pour faire pivoter l'image

Programme Java pour faire pivoter l'image

PHPz
PHPzavant
2023-09-01 16:25:031293parcourir

Un fichier image peut être tourné dans le sens des aiguilles d’une montre ou dans le sens inverse. Pour faire pivoter une image, vous devez télécharger un fichier image aléatoire et l'enregistrer dans n'importe quel dossier de votre système. En outre, un fichier .pdf est requis et après avoir ouvert le fichier image téléchargé, un certain angle peut être pivoté dans ce fichier .pdf particulier. Pour une rotation de 90 degrés, les points d'ancrage de la nouvelle image peuvent nous aider à effectuer la rotation à l'aide de la transformation de traduction en Java. Le point d'ancrage est le centre de toute image particulière.

Algorithme pour faire pivoter une image à l'aide de Java

La classe "AffineTransformOp" est le moyen le plus simple de faire pivoter un fichier image en utilisant Java. Un utilisateur peut charger les données d'image en tant qu'image tamponnée et appliquer l'opération de rotation à l'aide du point d'ancrage pour produire la nouvelle image tamponnée pour l'étape suivante. recommandé d'utiliser des fichiers JPEG pour ces opérations avec JDeli (type de fichier à large plage).

En faisant pivoter les images à l'aide du programme Java, les programmeurs peuvent utiliser certaines méthodes intégrées telles que la classe BufferedImage et Color c.

En utilisant ce processus, nous devons charger une image dans Java en tant que BufferedImage, puis utiliser la même fonction pour faire pivoter l'image et enregistrer les données dans un nouveau fichier.

Parlons maintenant de l'algorithme pour comprendre les opérations ci-dessus de manière plus large -

  • Étape 1 - L'image est lue et écrite, et importée dans une classe de fichiers représentant le chemin du répertoire.

  • Étape 2 − Utilisez IOException : gérer les erreurs.

  • Étape 3 - Pour conserver l'image particulière, utilisez l'objet appelé BufferedImage, une méthode statique pour enregistrer les données dans la RAM.

  • Étape 4 - Utilisez ImageIO pour les opérations de lecture et d'écriture.

  • Étape 5 - Utilisez la classe Graphics2D pour restituer des formes 2D.

Syntaxe

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

Selon cette grammaire, les étapes à comprendre sont les suivantes :

  • Paramètres −

    • Image − Effectuer une opération de rotation

    • Angle− Rotation de l'arc

  • Retour − le fichier image pivoté

Le processus suivant peut être utilisé pour faire pivoter des fichiers image à l'aide d'un programme Java -

  • Étape 1 − Charger le fichier image en tant qu'image tamponnée dans l'environnement Java Pour charger un fichier image en Java −

BufferedImage image = ImageIO.read(new File("C:\path\to\image name.jpg"));
  • Étape 2− Faites pivoter l'image de 90 degrés

  • Pour faire pivoter un fichier image de 90 degrés, suivez le code ci-dessous −

final double rads = Math.toRadians(90);
final Rotate rotate = new Rotate(90);
BufferedImage rotatedImage = rotate.apply(image);
  • Étape 3 Enregistrez le fichier image

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

Exemple

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 d'une image à l'aide de la fonction BufferedImage

En utilisant une méthode de blocage try-catch, nous pouvons gérer les exceptions car elles peuvent perturber le flux du code.

  • Classe Document - La classe document est principalement utilisée pour afficher des documents PDF. Dans ce programme Java particulier, nous devons créer une classe de document à l'aide de la fonction ie.documentobj. Cette fonction est utilisée pour ouvrir et fermer des fichiers PDF.

  • PDF Writer Class - La fonction prend en charge les générations de fichiers PDF, XML, RTF pour coder la rotation du fichier image. La fonction de répertoire que nous utilisons ici est fileOutputStream() pour gérer un fichier pour un code Java.

  • Fonction de sortie - output.pdf est une classe de fonctions qui représente la sortie après avoir effectué des opérations à l'aide du code Java. Cette fonction aide à obtenir la sortie de l’entrée fournie.

  • Fonctions −

    • image class.imgage.scaleToFit() - La fonction nous aide à définir une taille dans le préréglage du fichier d'entrée.

    • imageobj.setRotationDegrees() - le codeur peut l'utiliser pour faire pivoter l'image selon un certain angle. Il peut être utilisé comme paramètre dans la méthode que nous avons utilisée.

    • .
    • documentobj.open() - Cette fonction aide les utilisateurs à ouvrir des fichiers pendant le fonctionnement.

    • documentobj.close() - Utilisez cette fonction pour fermer un fichier .pdf.

Exemple

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

Sortie

La console affiche les dimensions et les popups d'exécution en codant à l'aide des méthodes possibles dans le programme. Une nouvelle image est enregistrée après la rotation.

Programme Java pour faire pivoter limage

Conclusion

Dans cet article, le processus décrit ci-dessus permet de faire pivoter les fichiers image. Pour une rotation de 90 degrés, le programme doit configurer une nouvelle image et tous les paramètres doivent être modifiés. Le point d’ancrage étant toujours au centre de l’image, le fonctionnement est le même pour une rotation dans le sens horaire et anti-horaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer