【发布时间】:2015-07-03 15:24:43
【问题描述】:
我写了这段代码:
BufferedImage image;
BufferedImage im = image;
@Override
public void paint(Graphics g) {
try {
image = ImageIO.read(new File("jet.png"));
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(image, 100, 100, Color.BLACK, null);
image = rotateImage(-45);
g2.drawImage(image, 250, 100, Color.BLACK, null);
} catch (IOException ex) {
}
}
public BufferedImage rotateImage(int degress) {
double deg = Math.toRadians(degress);
double xrot = image.getWidth()/2 ;
double yrot = image.getHeight() /2;
AffineTransform xt = AffineTransform.getRotateInstance(deg, xrot, yrot);
AffineTransformOp op = new AffineTransformOp(xt, AffineTransformOp.TYPE_BILINEAR);
return op.filter(image, im);
}
}
输出是:
并且新的图像尺寸发生了变化!!!我想旋转这张图片,它的重要的新图片尺寸没有变化
我想要一些代码来旋转图像而不调整图像大小,像这样
【问题讨论】:
-
您可以用一张图片替换另一张图片。
-
@AndrewTobilko 我只想使用一张图片!!!!
-
你试过Scalr库,它可以保持你的图像大小,并旋转它。但是如果图像不是正方形,那么它的尺寸当然会改变。
-
@NaniNakhli,添加答案,好吗?
-
@AndrewTobilko 这一行有错误:GraphicsConfiguration gc = getDefaultConfiguration();
标签: java image swing image-rotation