M
muril
Gast
Hi,
Wie schaff ich es ein Image in ein BufferedImage umzuwandeln?
mfg muril
Wie schaff ich es ein Image in ein BufferedImage umzuwandeln?
mfg muril
Image img = ..... // so wie Du es jetzt lädst
BufferedImage buf = new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.OPAQUE);
Graphics g = buf.getGraphics();
g.drawImage(img,0,0,null);
BufferedImage bufimage = new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.OPAQUE);
BufferedImage bufimage = ImageIO.read(new File("c:/panzer.gif"));
try{
int iDegrees=0;
int iSizeDiff = img.getWidth(this) - img.getHeight(this);
int iSizeMax = Math.max( img.getWidth(this), img.getHeight(this) );
BufferedImage bufimage = ImageIO.read(new File("c:/panzer.gif"));;
Graphics2D g2 = (Graphics2D)bufimage.getGraphics();
AffineTransform at = AffineTransform.getRotateInstance( 0, Math.PI/180., (iSizeMax+1)/2, (iSizeMax+1)/2 );
g2.setTransform( at );
if( 0 < iSizeDiff && ( 90 == iDegrees || 180 == iDegrees ) ) iMoveY = iSizeDiff;
if( 0 > iSizeDiff && ( 180 == iDegrees || 270 == iDegrees ) ) iMoveX = -iSizeDiff;
g2.drawImage( img, iMoveX, iMoveY, null );
rotate++;
}
catch(Exception e){
}
import java.applet.*;
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
public class BallBewegungDoppel extends Applet implements Runnable {
private static final long serialVersionUID = 1L;
// Variablen für die Doppelpufferung
private Image dbImage;
private Graphics dbg;
BufferedImage buf;
public void init() {
setBackground(Color.blue);
try {
buf = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/car.gif"));
} catch (IOException e) {}
this.setSize(300, 300);
}
public void start() {
Thread th = new Thread(this);
th.start();
}
public void stop() {
}
public void destroy() {
}
public void run() {
while (true) {
repaint();
try {
Thread.sleep(20);
} catch (InterruptedException ex) { }
}
}
/** Update - Methode, Realisierung der Doppelpufferung zur Reduzierung des Bildschirmflackerns */
public void update(Graphics g) {
if (dbImage == null) {
dbImage = createImage(this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics();
}
dbg.setColor(getBackground());
dbg.fillRect(0, 0, this.getSize().width, this.getSize().height);
dbg.setColor(getForeground());
paint(dbg);
g.drawImage(dbImage, 0, 0, this);
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
AffineTransform at = new AffineTransform();
at.rotate(Math.toRadians(45),(50+(buf.getWidth()/2)),(50+(buf.getHeight()/2)));
g2.setTransform( at );
g.drawImage(buf, 50, 50, this);
at.rotate(Math.toRadians(-45),(50+(buf.getWidth()/2)),(50+(buf.getHeight()/2)));
g2.setTransform(at);
g.setColor(Color.green);
g.fillRect(100,100,20,20);
}
}