Hallo,
ich will ein Rechteck zeichnen. Ich speichere es in einem Bild ab. Leider wird die rechte und untere Seite wird nicht gezeichnet.
Das Problem ist leicht zu loesen, indem man g2.drawRect(0,0,w-1,h-1) aufruft. Aber warum muss ich w und h um -1 verkleinern? Das Bild hat die Dimensionen w x h und das Rechteck, dass ich zeichnen will hat die Dimensionen w x h. Warum also wird es erst richtig gezeichnet wenn ich w und h um 1 verkleinere?
Hier der Code der nicht richtig funktioniert:
ich will ein Rechteck zeichnen. Ich speichere es in einem Bild ab. Leider wird die rechte und untere Seite wird nicht gezeichnet.
Das Problem ist leicht zu loesen, indem man g2.drawRect(0,0,w-1,h-1) aufruft. Aber warum muss ich w und h um -1 verkleinern? Das Bild hat die Dimensionen w x h und das Rechteck, dass ich zeichnen will hat die Dimensionen w x h. Warum also wird es erst richtig gezeichnet wenn ich w und h um 1 verkleinere?
Hier der Code der nicht richtig funktioniert:
Code:
public static void main(String[] args) throws IOException {
int w = 800;
int h = 1000;
BufferedImage bitmap = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bitmap.createGraphics();
g2.setColor(Color.CYAN);
g2.drawRect(0, 0, w, h);
ImageIO.write(bitmap, "png", new File("test.png"));
}