gpt4 book ai didi

java - 如何使用 Java/Swing 旋转图像,然后将其原点设置为 0,0?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:32 25 4
gpt4 key购买 nike

我能够旋转已添加到 JLabel 的图像。唯一的问题是,如果高度和宽度不相等,旋转后的图像将不再出现在 JLabel 的原点 (0,0)。

这就是我正在做的。我也尝试过使用 AffineTransform 并旋转图像本身,但结果相同。

Graphics2D g2d = (Graphics2D)g;
g2d.rotate(Math.toRadians(90), image.getWidth()/2, image.getHeight()/2);
super.paintComponent(g2d);

如果我有一个宽度大于高度的图像,使用此方法旋转该图像然后对其进行绘制将导致图像在点 0,0 的垂直上方和点 0 的右侧水平绘制,0.

最佳答案

使用 g2d.transform() 将图像移回需要的位置。我只是在想象计算可能是什么,但我认为是这样的:

int diff = ( image.getWidth() - image.getHeight() ) / 2;
g2.transform( -diff, diff );

顺便说一句,您可能会遇到标签报告其首选大小的问题 - 您可能需要重写 getPreferredSize() 并考虑在旋转时交换图像的宽度和高度。

关于java - 如何使用 Java/Swing 旋转图像,然后将其原点设置为 0,0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2687926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com