2009-02-22 14 views
13

Ich bin sicher, dass dies eine sehr dumme Frage ist, aber ich kann die Antwort nicht finden, ich bin nicht mit der Java2D API erfahren. Ich versuche, ein Bild zu erstellen und es in GIF oder PNG zu schreiben, und ich möchte, dass es einen schwarzen Stift auf einem weißen Hintergrund verwendet. Wenn ich keine Farben einstelle, bekomme ich Weiß auf Schwarz. Wenn ich setPaint() (für nachfolgende Zeichenoperationen) verwende, bekomme ich die gesamte Leinwand mit dieser Farbe neu gestrichen. Das folgende Beispiel macht das Ganze schwarz.Graphics2D: Zeichnung schwarz auf weiß?

Die Probe ist in Scala, aber Sie bekommen die Idee. Fühlen Sie sich frei, in Java zu antworten!

val bi = new BufferedImage(200, 400, BufferedImage.TYPE_BYTE_BINARY) 
    val g = bi.createGraphics 
    g.setBackground(Color.WHITE) 
    g.setPaint(Color.BLACK) 
    g.draw(new Rectangle(10, 10, 30, 20)) 

Antwort

29

setBackground Die Methode ist/war nur für die Verwendung mit dem Verfahren clearRect.

Füllen Sie das Rechteck mit der Hintergrundfarbe vor dem Lackieren:

int width = 200; 
int height = 400; 
BufferedImage image = new BufferedImage(width, height, 
          BufferedImage.TYPE_BYTE_BINARY); 
Graphics g = image.createGraphics(); 
g.setColor(Color.WHITE); 
g.fillRect(0, 0, width, height); 
g.setColor(Color.BLACK); 
//ready for drawing 
Verwandte Themen