2011-12-05 4 views
1

투명도가있는 이미지를 투명성이없는 Colorspace로 변환하고 있습니다. 투명 영역에 배경색을 설정하고 싶습니다. 바로 지금 내가 변환 할 때 투명 한 모든 영역이 최종 이미지에서 검은 색으로 변합니다. ColorSpaces간에 변환하는 동안 그 작업을 수행 할 수있는 방법이 있습니까?Java2D에서 ColorConvertOp를 사용할 때 투명도의 기본 색상을 설정하는 방법이 있습니까?

public BufferedImage convertColorspace(BufferedImage source, int newType) { 
    BufferedImage destination = new BufferedImage(source.getWidth(), source.getHeight(), newType); 
    ColorConvertOp colorConvertOp = new ColorConvertOp(null); 
    colorConvertOp.filter(source, destination); 
    return destination; 
} 

// here is how its used 
BufferedImage converted = convertColorspace(combinedImage, BufferedImage.TYPE_3BYTE_BGR); 

내가 BufferedImage.TYPE_3BYTE_BGR에 BufferedImage.TYPE_4BYTE_ARGB으로 변환 해요 : 저는 여기에 색 공간 사이의 변환 사용 내 코드입니다.

답변

1

방법에 대해 :

BufferedImage temp = new BufferedImage(source.getWidth(), source.getHeight(), 
     BufferedImage.TYPE_INT_ARGB); 
    Graphics2D g2 = temp.createGraphics(); 
    g2.setColor(Color.green); 
    g2.fillRect(0, 0, source.getWidth(), source.getHeight()); 
    g2.drawImage(0, 0, source, null); 
    g2.dispose(); 

그런 temp 대신 sourcecolorConvertOp.filter를 호출합니다.