像用Graphics2D的话,就有画矩形的Rectangle2D rect=new Rectangle2D.Double(x,y,z,k),参数都是double类型的。那画图片的有没有类似的函数呢?
------解决方案--------------------
AffineTransform参数的含义,是指在当前坐标系基础上,叠加进行其他变化操作。
比如你现在的坐标系当前位置在(0,0),如果想从(100,200)作为起点,等比例画你的矩形图片
那么就是
g2d.drawRenderedImage(img, AffineTransform.getTranslateInstance(100.0, 200.0));
如果想以(100,200)为起点,且按照原样50%画图片
可以
AffineTransform transform = AffineTransform.getTranslateInstance(100,200); //先获得偏移
transform.scale(0.5, 0.5); // 在此基础上,长宽均缩小至50%
g2d.drawRenderedImage(img, transform);
当然,也可以直接对g2d.setTransform,今后所有操作的坐标系统,都将以此为标准。不过,记得set之前,先getTransform老的坐标系统,以备不时之需。
------解决方案--------------------
BufferedImage image = ImageIO.read(f);
确保文件路径对