Bild drehen

Jan_bremer

Grünschnabel
Hallo,

Das mit den Bild drehen funktioniert in Prinzip, das Problem was ich habe ist, das das neue Bild genau so groß wie das alte ist.

Das heißt bei drehen wird das bild abgeschnitten.
Die Größe des alten Bildes ist quasi eine Schablone wo man durchschaut.

Ich hoffe das man es so verstehen kann.

Wie gesagt, das drehen klapp.
Das gedrehte Bild ist nur zu klein.

Ich habe auch schon versucht das Graphics2D Objekt zu drehen.
Das Funktioniert auch.
Nur da hab ich dann das Problem, das sich das Koordinaten System mit dreht.
Was wiederum zu anderen Problemen führt.


Hier nochmal ein Bild vom Problem.
http://http://os.johnnysnow.com/dreh_problem.jpg

Und etwas code

PHP:
	        BufferedImageOp op = new AffineTransformOp(AffineTransform.getRotateInstance((angle), rotationx, rotationy), null);
	       
	        Image buffImgDestination;
	        buffImgDestination = op.filter(pics[currentpic], null);
	        
	        
	        g2.drawImage(buffImgDestination, (int) x, (int) y,null);

Schonmal vielen Dank fürs Lesen :)
 
Hab die Lösung selbst gefunden:

PHP:
   private static BufferedImage rotateImage(BufferedImage src, double degrees) {
        AffineTransform affineTransform = AffineTransform.getRotateInstance(
                Math.toRadians(degrees),
                src.getWidth() / 2,
                src.getHeight() / 2);
        BufferedImage rotatedImage = new BufferedImage(src.getWidth(), src
                .getHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics2D g = (Graphics2D) rotatedImage.getGraphics();
        g.setTransform(affineTransform);
        g.drawImage(src, 0, 0,null);
        return rotatedImage;
    }

	
	@Override
	public void drawObjects(Graphics g) {

        BufferedImage rotatedImage = rotateImage(pics[currentpic], Math.toDegrees(angle));

	        g.drawImage(rotatedImage, (int) x, (int) y,null);
	        
	}
 

Neue Beiträge

Zurück