Hallo,
ich habe ein Programm, indem man Bilder skalieren, drehen und bewegen kann. Die Bilder sind ganz normale Fotos. Doch vorallem nachdem ein Bild gedreht wurde, bekommt es Kanten. Ich lade vorher die Bilder aus einem Ordner und speichere diese jeweils in ein BufferedImage. Dieses BufferedImages zeichne ich später in der Paint-Methode, nachdem ich mit g.rotate() das Bild gedreht habe. Obwohl ich Antialias eingeschaltet habe, erscheinen Kanten.
Der Code sieht im wesentlichen so aus:
Das Bild wird auch noch skaliert, zb direkt beim Laden mit AffineTransformOp. Nachdem Skalieren, zeichne ich das geladene BufferedImage in ein neues BufferedImage. Auch wenn ich dort Antialias aktiviere, funktioniert es nicht. Ist das normal so bei Fotos in Java, dass Antialias nicht geht oder gibt es irgendwelche Besonderheiten, die ich beachten muss oder irgendwelche Tricks womit es doch geht?
ich habe ein Programm, indem man Bilder skalieren, drehen und bewegen kann. Die Bilder sind ganz normale Fotos. Doch vorallem nachdem ein Bild gedreht wurde, bekommt es Kanten. Ich lade vorher die Bilder aus einem Ordner und speichere diese jeweils in ein BufferedImage. Dieses BufferedImages zeichne ich später in der Paint-Methode, nachdem ich mit g.rotate() das Bild gedreht habe. Obwohl ich Antialias eingeschaltet habe, erscheinen Kanten.
Der Code sieht im wesentlichen so aus:
Code:
public void paint(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.rotate(a,xRotate,yRotate);
g2.drawImage(image,x,y,null); //image ist ein BufferedImage, was mit ImageIO.read() gespeichert wurde
}
Das Bild wird auch noch skaliert, zb direkt beim Laden mit AffineTransformOp. Nachdem Skalieren, zeichne ich das geladene BufferedImage in ein neues BufferedImage. Auch wenn ich dort Antialias aktiviere, funktioniert es nicht. Ist das normal so bei Fotos in Java, dass Antialias nicht geht oder gibt es irgendwelche Besonderheiten, die ich beachten muss oder irgendwelche Tricks womit es doch geht?