2009-02-22 46 views
13

Tôi chắc chắn đây là một câu hỏi rất ngu ngốc nhưng tôi không thể tìm thấy câu trả lời, tôi không có kinh nghiệm với API Java2D. Tôi đang cố gắng tạo một hình ảnh và ghi nó vào GIF hoặc PNG, và tôi muốn nó sử dụng một cây bút màu đen trên nền trắng. Nếu tôi không đặt bất kỳ màu nào, tôi sẽ có màu trắng trên nền đen. Nếu tôi sử dụng setPaint() (dành cho các thao tác vẽ tiếp theo), tôi nhận được toàn bộ canvas được sơn lại với màu đó. Mẫu sau đây ám toàn bộ màu đen.Graphics2D: Vẽ màu đen trên nền trắng?

Mẫu ở Scala nhưng bạn có ý tưởng. Hãy trả lời trong Java!

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)) 

Trả lời

29

Phương pháp setBackground là/chỉ được sử dụng với phương pháp clearRect.

Điền hình chữ nhật với màu nền trước khi sơn:

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 
Các vấn đề liên quan