Java BufferedImage Rotate rotateImage(final BufferedImage savedImage, final int angle)

Here you can find the source of rotateImage(final BufferedImage savedImage, final int angle)

Description

rotate Image

License

Open Source License

Declaration

public static BufferedImage rotateImage(final BufferedImage savedImage, final int angle) 

Method Source Code


//package com.java2s;
/*//from w w w  .j  ava 2s  .  c  o  m
 * ===========================================
 * Java Pdf Extraction Decoding Access Library
 * ===========================================
 *
 * Project Info:  http://www.idrsolutions.com
 * Help section for developers at http://www.idrsolutions.com/support/
 *
 * (C) Copyright 1997-2016 IDRsolutions and Contributors.
 *
 * This file is part of JPedal/JPDF2HTML5
 *
 This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
    
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.
    
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    
    
 *
 * ---------------
 * ImageUtils.java
 * ---------------
 */

import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;

public class Main {
    public static BufferedImage rotateImage(final BufferedImage savedImage, final int angle) {

        final BufferedImage rotatedImage;

        if (angle == 180) {

            final AffineTransform tx = AffineTransform.getScaleInstance(-1, -1);
            tx.translate(-savedImage.getWidth(null), -savedImage.getHeight(null));
            final AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
            rotatedImage = op.filter(savedImage, null);

        } else {

            final int w = savedImage.getWidth();
            final int h = savedImage.getHeight();
            rotatedImage = new BufferedImage(h, w, savedImage.getType());
            final Graphics2D g2 = rotatedImage.createGraphics();

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

            final int diff = (w - h) / 2;

            if (angle == 90) {
                g2.drawImage(savedImage, diff, diff, null);

            } else if (angle == 270) {
                g2.drawImage(savedImage, -diff, -diff, null);

            }
        }

        return rotatedImage;
    }
}

Related

  1. rotateImage(BufferedImage img, double angle)
  2. rotateImage(BufferedImage img, double angle, int type)
  3. rotateImage(BufferedImage img, double degree)
  4. rotateImage(BufferedImage src, double degrees)
  5. rotateImage(final BufferedImage image, final double theta)
  6. rotateImage(final BufferedImage src, final double degrees)
  7. rotateImage180(BufferedImage image, final int bufferedImageType)
  8. rotateImageLeft90( BufferedImage bufferedimage)
  9. rotateImageRect(final BufferedImage image, final int degrees)