title image


Smiley Re: BufferedImage rotateImage(BufferedImage bi, double angle) ???
Etwas überlegen tuts auch!



1. Zeichen wir einfach ein Rechteck mit einer Textur drauf. Alles was man dazu braucht ist eine Komponente mit überschriebenem paintComponent(), ein Image (die Textur), ein Rectangle2D, ein TexturePaint und etwas Verständnis.





import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import java.awt.TexturePaint;

import java.awt.geom.Rectangle2D;

import java.awt.image.BufferedImage;

import javax.swing.JComponent;

import javax.swing.JFrame;



public class Test extends JComponent {



BufferedImage img = new BufferedImage(50, 50, BufferedImage.TYPE_INT_ARGB);



public Test() {

Graphics g = img.getGraphics();

g.setColor(Color.WHITE);

g.fillRect(0,0,50,50);

g.setColor(Color.BLACK);

g.drawRect(0,0,49,49);

}



public void paintComponent(Graphics g) {

Graphics2D g2d = (Graphics2D) g;

paintComponent(g2d);

}



public void paintComponent(Graphics2D g) {

Dimension d = getSize();

Rectangle2D r = new Rectangle2D.Double(0, 0, 100, 100);

Rectangle2D a = new Rectangle2D.Double(0, 0, 50, 50);

TexturePaint p = new TexturePaint(img, a);



g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);



g.setPaint(p);



double angleInDegrees = 90;

// verschieben des Bildes in die Mitte

g.translate((d.width-100)/2.0d, (d.height-100)/2.0d);

// drehen des Bildes um (50,50)

g.rotate(Math.toRadians(angleInDegrees), 50, 50);

// Rotationsanweisungen bitte rückwärts lesen um sie auf dem Blatt zu verstehen!

// Sprich: 1. Bild im Ursprung drehen

// 2. Bild in die Mitte verschieben



g.fill(r);

}



public static void main(String[] args) {

JFrame f = new JFrame();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.getContentPane().add(new Test(), BorderLayout.CENTER);

f.setSize(400, 300);

f.setVisible(true);

}



}
Tobain
"Für verlorene Gelegenheiten in der Politik gibt es kein Fundbüro."
Get Firefox!


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: