【发布时间】:2017-10-20 13:03:09
【问题描述】:
我已经搜索过它,但我没有得到直接的答案。 我想要一个缓冲的图像被旋转但不被裁剪 我知道新维度会是这样的
int w = originalImage.getWidth();
int h = originalImage.getHeight();
double toRad = Math.toRadians(degree);
int hPrime = (int) (w * Math.abs(Math.sin(toRad)) + h * Math.abs(Math.cos(toRad)));
int wPrime = (int) (h * Math.abs(Math.sin(toRad)) + w * Math.abs(Math.cos(toRad)));
给我一个方法。
顺便说一句,有没有办法用ImageIcon 旋转JLabel?
意图:添加到面板和分层窗格并将其保存到文件(保存分层窗格)。
或者我们可以旋转分层窗格吗?
【问题讨论】:
-
“如何在 java 中旋转缓冲图像而不裁剪它?有什么方法可以旋转 Jlayeredpane 或 Jlabel?” 当然,但如果图像填满整个宽度和高度,旋转图像的尺寸需要更大。这是简单的几何图形。
-
“意图:添加到面板和分层窗格并将其保存到文件中(保存分层窗格)。” 这确实解释不了为什么需要旋转图像.但是既然你提到它,我不建议尝试自己序列化组件。除非有更多细节,否则我倾向于将所有内容(包括旋转图像)写入更大的图像并序列化该更大的图像。
标签: java swing rotation bufferedimage jlayeredpane