过程:生成一张空白图片,先在上面画一张旋转的图片,然后在画一张正的图片。但是画正的图片的时候坐标调不回来,大家帮我看看,帮我转回来吧。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,写的矩阵没看懂,高手来指点一下。
还有就是我生成一张空白图片的时候,背景默认是黑色的,怎么让他透明呢?比如我在一张空白图片上画一张旋转的图片然后生成,生成的新图里没有旋转图片的部分是黑色的,如何让他是透明色呢?
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,写的矩阵没看懂,高手来指点一下。
还有就是我生成一张空白图片的时候,背景默认是黑色的,怎么让他透明呢?比如我在一张空白图片上画一张旋转的图片然后生成,生成的新图里没有旋转图片的部分是黑色的,如何让他是透明色呢?
rorate,translate
那么逆向过程应该是先 translate,再rorate
这句是这样,然后生成出来的图片第一张和第二张都旋转了,我先让第二张正常摆放。
谢谢你了。
画完第一个再转回来.