Mit Java Bild größe ändern und es drehen?
Hallo,
ich habe zwar schon viele Kenntnisse über Java ,doch im Bereich BufferedImage o.ä. kenne ich mich noch garnicht aus. Momentan arbeite ich an einem Projekt und bräuchte eine Methode die ein Bild mit einem bestimmten Radius drehen kann und eine die das Bild auf eine bstimmte Größe skaliert. Kann mir wer helfen?
Danke
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
Wenn man programmieren will, sollte man eh Englisch können, weil 90% der Quellen englischsprachig ist.