在Java中旋转图像

6

我有一张Pan卡的图片,当我尝试将其旋转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);

1
请查看此链接:https://dev59.com/U03Sa4cB1Zd3GeqPuVVI - Ponmalar
还有一件事,伙计们。我想在我的项目中包括一些功能,比如缩放、裁剪等。我能为我的项目获取任何实用的JAR吗? - Azuu
1个回答

9
请查看 这个示例,使用 AffineTransform。
有一些代码用于加载图像,然后这是核心:
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);

5
如何定位转换后的图像?drawImage 方法似乎没有相应的构造函数。 - Feelsbadman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接