Java Program to Rotate an Image - GeeksforGeeks

25 Nov, 2021
The problem statement is to rotate an image clockwise 90 degrees for which here we will be using some in-built methods of BufferedImage class and Color c
Classes required to perform the operation is as follows:
To read and write an image file we have to import the File class. This class represents file and directory path names in general.
To handle errors we use the IOException class.
To hold the image we create the BufferedImage object for that we use BufferedImage class. This object is used to store an image in RAM.
To perform the image read-write operation we will import the ImageIO class. This class has static methods to read and write an image.
This Graphics2D class extends the Graphics class to provide more sophisticated control over geometry, coordinate transformations, color management, and text layout. This is the fundamental class for rendering 2-dimensional shapes, text, and images on the Java(tm) platform.
Example:
Java
// Java program to rotate image by 90 degrees clockwise // Importing classes from java.awt package for// painting graphics and imagesimport java.awt.Graphics2D;import java.awt.image.BufferedImage;// Importing input output classesimport java.io.File;import java.io.IOException;import javax.imageio.ImageIO; // Main classpublic class GFG {     // Method 1    // To return rotated image    public static BufferedImage rotate(BufferedImage img)    {         // Getting Dimensions of image        int width = img.getWidth();        int height = img.getHeight();         // Creating a new buffered image        BufferedImage newImage = new BufferedImage(            img.getWidth(), img.getHeight(), img.getType());         // creating Graphics in buffered image        Graphics2D g2 = newImage.createGraphics();         // Rotating image by degrees using toradians()        // method        // and setting new dimension t it        g2.rotate(Math.toRadians(90), width / 2,                  height / 2);        g2.drawImage(img, null, 0, 0);         // Return rotated buffer image        return newImage;    }     // Method 2    // Main driver method    public static void main(String[] args)    {        // try block to check for exceptions        try {             // Reading original image            BufferedImage originalImg = ImageIO.read(                new File("D:/test/Image.jpeg"));             // Getting and Printing dimensions of original            // image            System.out.println("Original Image Dimension: "                               + originalImg.getWidth() + "x"                               + originalImg.getHeight());             // Creating a subimage of given dimensions            BufferedImage SubImg = rotate(originalImg);             // Printing Dimensions of new image created            // (Rotated image)            System.out.println("Cropped Image Dimension: "                               + SubImg.getWidth() + "x"                               + SubImg.getHeight());             // Creating new file for rotated image            File outputfile                = new File("D:/test/ImageRotated.jpeg");             // Writing image in new file created            ImageIO.write(SubImg, "jpg", outputfile);             // Printing executed message            System.out.println(                "Image rotated successfully: "                + outputfile.getPath());        }         // Catch block to handle the exception        catch (IOException e) {             // Print the line number where exception            // occurred            e.printStackTrace();        }    }}
 Output: After executing the program console will show dimensions and executed message and a new rotated image will be created at the path entered as shown: 
 
akshaysingh98088
ruhelaa48
Java
Java Programs
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Stream In Java
Constructors in Java
Exceptions in Java
Functional Interfaces in Java
Generics in Java
Java Programming Examples
Convert Double to Integer in Java
Implementing a Linked List in Java using Class
How to Iterate HashMap in Java?
Iterate through List in Java