刚刚完成了图片旋转的任务,好累啊!不知道是因为太久没弄java还是本来就比较笨,反正弄了好久,上网查的基本没帮助,除了让我知道AffineTransform会被用到之外基本没帮助!事实用java对图片进行一般的缩放旋转处理是很简单的!唉,看来学东西还是要有老师的指导啊,自己弄走的弯路实在是太多了!

  要进行图片的旋转首先要知道的是:BufferedImage类------该类相当于一个容器.

                                                AffineTransform类-----该类相当于变换方法.

   首先定制一个适当大小的BufferedImage对象,这简单,构造器直接弄.然后构造一个空的AffineTransform对象.接着调用BufferedImage对象的setTransform()方法将AffineTransform关联起来.然后调用AffineTransform的相应rotate(),translate()等方法进行变换.最后调用BufferedImage对象的drawImage()方法将要变换的图像画进去即可!就这么简单几步!

  ImageIcon ico = null;
  AffineTransform trans = null;
  trans = new AffineTransform();
  trans.rotate(Math.PI, oringinal.getWidth(null) / 2, oringinal
    .getHeight(null) / 2);
  File f = new File("GUI/icons/greyscale_007.gif");
  try {
   Image image = ImageIO.read(f);
   BufferedImage buffer1 = new BufferedImage(image.getWidth(null),
     image.getHeight(null), BufferedImage.TYPE_INT_RGB);
   Graphics2D g2 = buffer1.createGraphics();
   g2.setTransform(trans);
   g2.drawImage(image, null, null);
   ico = new ImageIcon(buffer1);
  } catch (Exception e) {
   e.printStackTrace();
  }

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐