Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public BufferedImage transform(BufferedImage image){
- System.out.println("Input width: "+ image.getWidth());
- System.out.println("Input height: "+ image.getHeight());
- AffineTransform affineTransform = new AffineTransform();
- affineTransform.setToQuadrantRotation(1, image.getWidth() / 2, image.getHeight() / 2);
- AffineTransformOp opRotated = new AffineTransformOp(affineTransform, AffineTransformOp.TYPE_BILINEAR);
- BufferedImage transformedImage = opRotated.createCompatibleDestImage(image, image.getColorModel());
- System.out.println("Resulting width: "+ transformedImage.getWidth());
- System.out.println("Resulting height: "+ transformedImage.getHeight());
- transformedImage = opRotated.filter(image, transformedImage);
- return transformedImage;
- }
- import java.awt.geom.AffineTransform;
- import java.awt.image.AffineTransformOp;
- import java.awt.image.BufferedImage;
- import java.io.IOException;
- import java.net.MalformedURLException;
- import java.net.URL;
- import javax.imageio.ImageIO;
- import javax.swing.ImageIcon;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- public class RotateImage {
- public static final String IMAGE_PATH = "http://duke.kenai.com/"
- + "models/Duke3DprogressionSmall.jpg";
- public static void main(String[] args) {
- try {
- URL imageUrl = new URL(IMAGE_PATH);
- BufferedImage img0 = ImageIO.read(imageUrl);
- ImageIcon icon0 = new ImageIcon(img0);
- int numquadrants = 1;
- BufferedImage img1 = transform(img0, numquadrants );
- ImageIcon icon1 = new ImageIcon(img1);
- JOptionPane.showMessageDialog(null, new JLabel(icon0));
- JOptionPane.showMessageDialog(null, new JLabel(icon1));
- } catch (MalformedURLException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static BufferedImage transform(BufferedImage image, int numquadrants) {
- int w0 = image.getWidth();
- int h0 = image.getHeight();
- int w1 = w0;
- int h1 = h0;
- int centerX = w0 / 2;
- int centerY = h0 / 2;
- if (numquadrants % 2 == 1) {
- w1 = h0;
- h1 = w0;
- }
- if (numquadrants % 4 == 1) {
- if (w0 > h0) {
- centerX = h0 / 2;
- centerY = h0 / 2;
- } else if (h0 > w0) {
- centerX = w0 / 2;
- centerY = w0 / 2;
- }
- // if h0 == w0, then use default
- } else if (numquadrants % 4 == 3) {
- if (w0 > h0) {
- centerX = w0 / 2;
- centerY = w0 / 2;
- } else if (h0 > w0) {
- centerX = h0 / 2;
- centerY = h0 / 2;
- }
- // if h0 == w0, then use default
- }
- AffineTransform affineTransform = new AffineTransform();
- affineTransform.setToQuadrantRotation(numquadrants, centerX, centerY);
- AffineTransformOp opRotated = new AffineTransformOp(affineTransform,
- AffineTransformOp.TYPE_BILINEAR);
- BufferedImage transformedImage = new BufferedImage(w1, h1,
- image.getType());
- transformedImage = opRotated.filter(image, transformedImage);
- return transformedImage;
- }
- }
- public static BufferedImage rotateImage(BufferedImage image, int quadrants) {
- int w0 = image.getWidth();
- int h0 = image.getHeight();
- int w1 = w0;
- int h1 = h0;
- int centerX = w0 / 2;
- int centerY = h0 / 2;
- if (quadrants % 2 == 1) {
- w1 = h0;
- h1 = w0;
- }
- if (quadrants % 4 == 1) {
- centerX = h0 / 2;
- centerY = h0 / 2;
- } else if (quadrants % 4 == 3) {
- centerX = w0 / 2;
- centerY = w0 / 2;
- }
- AffineTransform affineTransform = new AffineTransform();
- affineTransform.setToQuadrantRotation(quadrants, centerX, centerY);
- AffineTransformOp opRotated = new AffineTransformOp(affineTransform,
- AffineTransformOp.TYPE_BILINEAR);
- BufferedImage transformedImage = new BufferedImage(w1, h1,
- image.getType());
- transformedImage = opRotated.filter(image, transformedImage);
- return transformedImage;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement