Mit Java Bild größe ändern und es drehen?

2 Antworten

Eine Rotation und Skalierung lässt sich beim Zeichnen des Bildes realisieren.

Angenommen, du hast eine eigene Subklasse von JPanel geschrieben, in der die paintComponent-Methode überschrieben wird.

// do base stuff like call of super.paintComponent method ...

AffineTransform transform = new AffineTransform();

double panelCenterX = getWidth() / 2;
double panelCenterY = getHeight() / 2;
transform.translate(panelCenterX, panelCenterY);

transform.scale(yourScaleX, yourScaleY);
transform.rotate(yourRotationAngle);

double imageCenterX = image.getWidth() / 2;
double imageCenterY = image.getHeight() / 2;
transform.translate(-imageCenterX, -imageCenterY);

Graphics2D graphics2d = (Graphics2D) graphics;
graphics2d.drawImage(image, transform, null);

Mit einem AffineTransform-Objekt kann man erst den Transformationsanker setzen und dann nach Belieben das Bild rotieren oder/und skalieren. Über die drawImage-Methode des Graphics2D-Objekt lässt sich schließlich die vorgenommene Transformation auch zeichnen.

Hi,

ich hab das zwar selber noch nicht gemacht, aber zum programmieren kann ich (bei ausreichenden Englischkenntnissen) nur stackoverflow zum suchen & fragen empfehlen. Ggfs hilft dir das hier schon weiter: https://stackoverflow.com/questions/4216123/how-to-scale-a-bufferedimage

Woher ich das weiß:Recherche

Xearox  16.06.2019, 13:08

Wenn man programmieren will, sollte man eh Englisch können, weil 90% der Quellen englischsprachig ist.

1