Friday, September 27, 2024
Google search engine
HomeLanguagesJavaJava Program to Rotate an Image

Java Program to Rotate an Image

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 images
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
// Importing input output classes
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
 
// Main class
public 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:
 

 

RELATED ARTICLES

Most Popular

Recent Comments