Rotating An Image In Java Graphics 2D By Specified Degree

The following java example will read an input image from the file system, and then it will rotate the image with the angle in degrees provided in the parameter while calling rotateMyImage method from the main method. It will then save the rotated image back to the file system as a new image file.

package com.kushal.graphics;
/**
 * @Author Kushal Paudyal
 * www.sanjaal.com/java
 * Last Modified On 2009-10-08
 *
 * Using Graphics 2D To Rotate An Image
 */
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ImageRotator {
public static void main (String args [])
{
String inputFileLocation="C:/temp/myImage02.jpg";
String outputFileLocation ="C:/temp/myImage-Rotated02.jpg";;
double angleOfRotation=10.0;

System.out.println("Reading Original File : "+inputFileLocation);

BufferedImage originalImage=readImage(inputFileLocation);

System.out.println("...Donen");

System.out.println("Rotating the original Image By: "+angleOfRotation+" degrees");
BufferedImage processedImage=rotateMyImage(originalImage, angleOfRotation);
System.out.println("...Donen");

System.out.println("Writing the rotated image to: "+outputFileLocation);
writeImage(processedImage, outputFileLocation, "jpg");
System.out.println("...Done");
}

public static BufferedImage rotateMyImage(BufferedImage img, double angle) {
int w = img.getWidth();
int h = img.getHeight();
BufferedImage dimg =new BufferedImage(w, h, img.getType());
Graphics2D g = dimg.createGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, // Anti-alias!
RenderingHints.VALUE_ANTIALIAS_ON);

g.rotate(Math.toRadians(angle), w/2, h/2);

g.drawImage(img, null, 0, 0);
return dimg;
}

/**
* This method reads an image from the file
* @param fileLocation -- > eg. "C:/testImage.jpg"
* @return BufferedImage of the file read
*/
public static BufferedImage readImage(String fileLocation) {
BufferedImage img = null;
try {
img = ImageIO.read(new File(fileLocation));
} catch (IOException e) {
e.printStackTrace();
}
return img;
}

/**
* This method writes a buffered image to a file
* @param img -- > BufferedImage
* @param fileLocation --> e.g. "C:/testImage.jpg"
* @param extension --> e.g. "jpg","gif","png"
*/
public static void writeImage(BufferedImage img, String fileLocation,
String extension) {
try {
BufferedImage bi = img;
File outputfile = new File(fileLocation);
ImageIO.write(bi, extension, outputfile);
} catch (IOException e) {
e.printStackTrace();
}
}

/*
* SANJAAL CORPS MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
* THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SANJAAL CORPS SHALL NOT BE LIABLE FOR
* ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
* DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
*
* THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE
* CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE
* PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT
* NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE
* SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
* SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE
* PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). SANJAAL CORPS
* SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR
* HIGH RISK ACTIVITIES.
*/
}


The output of this program:

Reading Original File : C:/temp/myImage02.jpg
...Done

Rotating the original Image By: 10.0 degrees
...Done

Writing the rotated image to: C:/temp/myImage-Rotated02.jpg
...Done

Original Image File:

Image Rotated By The Java Code Above:

  1. Java Object Serialization and Deserialization In MySQL Database
  2. Flipping An Image Horizontally and Vertically In Java
  3. How To Set Conditional Debug Breakpoints in Eclipse or IBM RAD?
  4. Rotating An Image In Java Graphics 2D By Specified Degree
  5. Java – How To Overlay One Image Over Another Using Graphics2D [Tutorial]
  6. Quick SQL Reference – Find Duplicate Data In A Table Using Having Clause
  7. Splitting PDF File Using Java iText API Into Multiple PDFs
  8. Object Serialization And De-Serialization In Java To Filesystem
  9. Finding Java Image Pixels Information – ARGB (Alpha, Red, Green Blue)
  10. Creating A 3D Pie Chart In Java Using JFreeChart [Example Source Code]
  11. How to capture a screenshot using Java and save it to a file?
  12. Java Tutorial – Swing Text Drag And Drop – Sample Example
  13. Serialzing A Java Object Into XML and De-Serialzing using XMLEncoder And XMLDecoder
  14. Six Stages Of Debugging in Software Engineering
  15. Java 2D Graphics Example Tutorial On Paint, Gradient and Stroke
  16. Complete Tutorial On Using SOAP-UI to Mock Web Service Request / Response
  17. Listing The Content Of Zip File With Zip Information In Java
  18. Joke – Why do Java Programmers wear glasses?
  19. How to receive files via bluetooth in your MacBook Pro
  20. Calculating Folder Size Graphically and Generating Directory Size Chart In Java
Tagged , , , , , , , . Bookmark the permalink.

5 Responses to Calculating Folder Size Graphically and Generating Directory Size Chart In Java

  1. nocdib says:

    Thank you for this! It is just what I need

  2. d says:

    would that help you tocreate the file from ubunt server

  3. komal gaikwad says:

    in this code i got problem of array out of bound plz tell me solution.

  4. komal gaikwad says:

    In this code i got error
    Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 1
    plz send me proper code….

  5. Neethu says:

    Thank you very much for the solution. This is the one which i was searching.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.