在java中旋转图像

Azu*_*zuu 6 java graphics

我有一张Pan Card图像,当我尝试将它旋转45度并保存时,我得到一张裁剪图像.旋转图像的代码是:

    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);
Run Code Online (Sandbox Code Playgroud)

Col*_*ard 8

看看这个例子,使用AffineTransform:

http://www.billthelizard.com/2008/07/rotate-image-in-java.html

有一些代码加载图像,那么这是核心:

private Image image;
AffineTransform identity = new AffineTransform();

Graphics2D g2d = (Graphics2D)g;
AffineTransform trans = new AffineTransform();
trans.setTransform(identity);
trans.rotate( Math.toRadians(45) );
g2d.drawImage(image, trans, this);
Run Code Online (Sandbox Code Playgroud)

  • 您如何定位变换后的图像?drawImage方法似乎没有为此的构造函数 (4认同)