G
Guest
Gast
Hallo,
also jetzt bin ich mit mein Projekt stehen geblieben.
Ich will, dass eine Sequenz von methoden, die ein irgend ein Form oder Bild malen, alle in ein neues Bild gespeichert werden, damit ich nachher, erstens, eine Pufferung des gesamt Bild machen kann und zweitens, dass das Bild bei die vergrößerung des Canvas auch vergrößert wird. Die Pixelierung ist mir nicht wichtig.
Ich hab es bis jetzt so gemacht, dass alle die größen wieder gerechnet werden mussen, aber das ganze flackert zu viel...
Ich hatte mir etwa so gedacht:
Graphics2D wird im Background Bild gespeichert.
Dann sollte das Background Bild im ein neues Bild rein, und zwar den Puffer Bild.
und
Hier sollen alle die verschiedene voids zusammen gesetzt werden und alle in Puffer gespeichert.
dann will ich einfach in paint drawImage aufrufen.
Bitte Hilfe!
also jetzt bin ich mit mein Projekt stehen geblieben.
Ich will, dass eine Sequenz von methoden, die ein irgend ein Form oder Bild malen, alle in ein neues Bild gespeichert werden, damit ich nachher, erstens, eine Pufferung des gesamt Bild machen kann und zweitens, dass das Bild bei die vergrößerung des Canvas auch vergrößert wird. Die Pixelierung ist mir nicht wichtig.
Ich hab es bis jetzt so gemacht, dass alle die größen wieder gerechnet werden mussen, aber das ganze flackert zu viel...
Ich hatte mir etwa so gedacht:
Graphics2D wird im Background Bild gespeichert.
Dann sollte das Background Bild im ein neues Bild rein, und zwar den Puffer Bild.
Code:
public BufferedImage Puffer;
public void Background(BufferedImage Puffer, int x, int y) {
BufferedImage Background = new BufferedImage(24, 24, BufferedImage.TYPE_INT_ARGB);
Graphics g = Background.getGraphics();
Graphics2D g2 = (Graphics2D) g;
g2.setColor(new Color(255, 255, 191)); // light yellow
g2.fill(new Rectangle2D.Double(x * FIELD_SIZE,
y * FIELD_SIZE, FIELD_SIZE, FIELD_SIZE));
g2.setColor(new Color(0, 0, 0)); // black
g2.draw(new Rectangle2D.Double(x * FIELD_SIZE,
y * FIELD_SIZE, FIELD_SIZE, FIELD_SIZE));
Graphics g = Puffer.getGraphics();
Graphics2D gamefield = (Graphics2D) g;
gamefield.drawImage(Background, 0, 0, null);
}
und
Hier sollen alle die verschiedene voids zusammen gesetzt werden und alle in Puffer gespeichert.
Code:
public BufferedImage drawObject() {
Puffer = new BufferedImage(CanvasWidth, CanvasWidth, BufferedImage.TYPE_INT_ARGB);
for (int x = 0; x < width; x++)
for (int y = 0; y < height; y++){
Background(Puffer, x, y);
object1(Puffer, x, y);
object2(Puffer, x, y);
}
return Puffer;
}
dann will ich einfach in paint drawImage aufrufen.
Code:
g.drawImage(objects.Puffer, 0, 0, canvas);
//objects ist eine Klasse die von GUI aufgerufen wird
Bitte Hilfe!