2009-09-17 3 views
15

특정 배경색을 가진 사각형 BufferedImage을 생성하고 배경에 패턴을 그려 파일에 저장해야합니다. 나는 배경을 만드는 방법을 모른다.BufferedImage를 Java의 색상으로 설정하십시오.

BufferedImage b_img = ... 
for every row 
for every column 
setRGB(r,g,b); 

을하지만 이미지가 큰 경우 매우 느린 :

나는 중첩 루프를 사용하고 있습니다.

보다 효율적인 방법으로 색상을 설정하는 방법은 무엇입니까?

답변

47

이미지의 그래픽 개체를 가져 와서 현재 페인트를 원하는 색으로 설정 한 다음 fillRect(0,0,width,height)을 호출하십시오.

BufferedImage b_img = ... 
Graphics2D graphics = b_img.createGraphics(); 

graphics.setPaint (new Color (r, g, b)); 
graphics.fillRect (0, 0, b_img.getWidth(), b_img.getHeight()); 
6

아마 같은 :

BufferedImage image = new BufferedImage(...); 
Graphics2D g2d = image.createGraphics(); 
g2d.setColor(...); 
g2d.fillRect(...); 
3

사용이 :

BufferedImage bi = new BufferedImage(width, height, 
       BufferedImage.TYPE_INT_ARGB); 
Graphics2D ig2 = bi.createGraphics(); 

ig2.setBackground(Color.WHITE); 
ig2.clearRect(0, 0, width, height); 
3
BufferedImage image = new BufferedImage(width,height, BufferedImage.TYPE_INT_ARGB); 
int[]data=((DataBufferInt) image.getRaster().getDataBuffer()).getData(); 
Arrays.fill(data,color.getRGB()); 
+0

더 나은 해답의 자세한 내용을 설명하기 – Mostafiz

관련 문제