Используя Java, как я могу сделать метод, принимающий BufferedImage, повернуть его и вернуть BufferedImage (с правильной шириной / высотой)

Я искал много примеров, каждый раз, когда я пытаюсь, мое изображение становится смещенным, а также не поворачивается в зависимости от степени, которую я ищу.

У меня есть класс, который расширяет JPanel и рисует изображение. Этот JPanel затем помещается в мой JFrame. Мне нужно иметь метод, который, когда я нажимаю кнопку, может взять изображение JPanel, повернуть его и вернуться (с новой высотой и шириной). - Тогда я могу попросить JPanel перекрасить, используя новое изображение, и... оно должно было повернуться.

Если бы кто-нибудь мог помочь мне с примером поворота на 90 градусов и возврата с высотой = старая ширина и ширина = старая высота, это было бы удивительно!

Спасибо,

1 ответ

Решение

Вот ты где

Image rotatedImage = new BufferedImage(imageToRotate.getHeight(null), imageToRotate.getWidth(null), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = (Graphics2D) rotatedImage.getGraphics();
g2d.rotate(Math.toRadians(90.0));
g2d.drawImage(imageToRotate, 0, -rotatedImage.getWidth(null), null);
g2d.dispose();
Другие вопросы по тегам