Java – 图像旋转

前端之家收集整理的这篇文章主要介绍了Java – 图像旋转前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图旋转图像.我使用这个 Java代码
BufferedImage oldImage = ImageIO.read(new FileInputStream("C:\\workspace\\test\\src\\10.JPG"));
BufferedImage newImage = new BufferedImage(oldImage.getHeight(),oldImage.getWidth(),oldImage.getType());
Graphics2D graphics = (Graphics2D) newImage.getGraphics();
graphics.rotate(Math.toRadians(90),newImage.getWidth() / 2,newImage.getHeight() / 2);
graphics.drawImage(oldImage,oldImage.getHeight(),null);
ImageIO.write(newImage,"JPG",new FileOutputStream("C:\\workspace\\test\\src\\10_.JPG"));

但我看到奇怪的结果:

资源:

结果:

**Result image:** http://s14.postimage.org/cjut935ip/image.jpg

你能帮我解决这个问题吗?

解决方法

切换图像的宽度和高度还不够.您使用图像的中心作为旋转原点旋转.只要尝试一张纸,你会看到它的工作方式相同.您还必须移动纸张一点,这意味着应用转换来解决这个问题.所以,在旋转调用之后,请执行以下操作:
graphics.translate((newImage.getWidth() - oldImage.getWidth()) / 2,(newImage.getHeight() - oldImage.getHeight()) / 2);

猜你在找的Java相关文章