Hallo, ich habe folgende Methode aus dem Internet, um ein Bild zu rotieren:
Ich bekomme auch ein rotiertes Bild heraus, das Problem ist jetzt erstens, dass das Bild verzerrt wird und zweitens, dass das Bild nicht um seinen Mittelpunkt rotiert wird.
Wäre schön, wenn mir wer sagen könnte, wie ich das Bild rotieren muss, dass es sich nicht verzieht und sich um seinen eigenen Mittelpunkt dreht.
Also z.B. ich habe ein Bild mit 120px * 70px, das bei 100px und 100px gezeichnet wird. die Länge und Höhe sollen sich nicht ändern und in diesem Fall soll es sich um den Punkt (x= 160| y = 135) drehen.
Vielen Dank!
Java:
//Methode zum Rotieren eines Bildes
public BufferedImage rotateImageX(BufferedImage img, double angle) {
double sin = Math.abs(Math.sin(Math.toRadians(angle)));
double cos = Math.abs(Math.cos(Math.toRadians(angle)));
int w = img.getWidth(null), h = img.getHeight(null);
int neww = (int) Math.floor(w * cos + h * sin);
int newh = (int) Math.floor(h * cos + w * sin);
BufferedImage bimg = new BufferedImage(neww, newh,BufferedImage.TYPE_INT_ARGB);
Graphics2D g = bimg.createGraphics();
g.translate((neww - w) / 2, (newh - h) / 2);
g.rotate(Math.toRadians(angle), w / 2, h / 2);
g.drawRenderedImage(img, null);
g.dispose();
return bimg;
}
Ich bekomme auch ein rotiertes Bild heraus, das Problem ist jetzt erstens, dass das Bild verzerrt wird und zweitens, dass das Bild nicht um seinen Mittelpunkt rotiert wird.
Wäre schön, wenn mir wer sagen könnte, wie ich das Bild rotieren muss, dass es sich nicht verzieht und sich um seinen eigenen Mittelpunkt dreht.
Also z.B. ich habe ein Bild mit 120px * 70px, das bei 100px und 100px gezeichnet wird. die Länge und Höhe sollen sich nicht ändern und in diesem Fall soll es sich um den Punkt (x= 160| y = 135) drehen.
Vielen Dank!