过程:生成一张空白图片,先在上面画一张旋转的图片,然后在画一张正的图片。但是画正的图片的时候坐标调不回来,大家帮我看看,帮我转回来吧。public static void rotateAndComposeImage(){
        try{
            BufferedImage bugImg=new BufferedImage(176,220,BufferedImage.TYPE_INT_RGB);//空白图
            BufferedImage b1=ImageIO.read(new File("e:\\1\\b1cj02.gif"));
            BufferedImage b2=ImageIO.read(new File("e:\\1\\b2cj02.gif"));
            Graphics2D g2d=(Graphics2D)bugImg.getGraphics();
            //g2d.translate(25,50);
            g2d.rotate(Math.toRadians(16));//第一张 转10度
            g2d.drawImage(b2, 0, 0,null);
             //g2d.translate(-25,-50);
            g2d.rotate(Math.toRadians(-16));//第二张 这么做是能画正,但是坐标有偏移了,怎么调回来?
            g2d.drawImage(b1, 0, 0, null);
            ImageIO.write(bugImg, "gif", new File("e:\\1\\RotateAndComposeImageCJ02.gif"));
        }catch(Exception e){
            e.printStackTrace();
        }
    }对于g2d.translate(25,50);还是不太懂什么意思,查了API,写的矩阵没看懂,高手来指点一下。
还有就是我生成一张空白图片的时候,背景默认是黑色的,怎么让他透明呢?比如我在一张空白图片上画一张旋转的图片然后生成,生成的新图里没有旋转图片的部分是黑色的,如何让他是透明色呢?

解决方案 »

  1.   

    坐标系矩阵,如果要逆向返回,需要按照相反的顺序比如.
    rorate,translate
    那么逆向过程应该是先 translate,再rorate
      

  2.   

    g2d.rotate(Math.toRadians(16),25,50);//第一张 转10度
    这句是这样,然后生成出来的图片第一张和第二张都旋转了,我先让第二张正常摆放。
    谢谢你了。
      

  3.   

     g2d.rotate(Math.toRadians(-16)); 
    画完第一个再转回来.