2012-07-17 3 views
2

글쎄, 내 게임 엔진이 원활하게 작동하고 완벽하게 모든 머신에 탑재되어있다! 엔진에 기능을 계속 추가하기 전에 엔진의 그래픽 기능을 향상시키고 싶습니다. 내가 집중하고있는 것은 이미지가 흐려지고 블렌딩되는 것입니다. 나는 부드러운 트랜지션을 필요로 할 것입니다. OpenGL과 같은 타사 라이브러리를 사용하지 않고 그래픽 객체에 드로잉 할 때 이미지에 불투명도를 적용하는 방법은 무엇입니까? 모든 답변에 대한자바에서 이미지 블렌드

감사 :

+0

[한 이미지를 페이드 아웃하고 다른 이미지를 페이드 인 (Java)하는 방법은 무엇입니까?] (http://stackoverflow.com/a/8594835/1048330) 유용 할 수 있습니다. – tenorsax

답변

1

아마도 당신이 찾고있는 무엇을 할 수있는 AlphaComposite를 사용하여 D?

Image image = new Image(...); 
float alpha = 0.5; 
@Override 
public void paintComponent(Graphics g) { 
    Graphics2D g2d = (Graphics2D)g; 
    AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha); 
    g2d.setComposite(composite); 
    g2d.drawImage(image, 0, 0, null); 
} 

알파를 원하는 투명도 수준 (0.0과 1.0 사이)으로 설정합니다. 이 경우 투명 이미지를 오버레이하고 그 뒤를 볼 수 있으려면 AlphaComposite.SRC_OVER을 사용하고 싶을 것입니다. 그렇지 않으면 제공되는 첫 번째 링크에서 사용 가능한 모든 상수와 설명을 쉽게 볼 수 있습니다).

+0

: D thx 나는 이것을 배우는 데 약간의 시간이 걸릴 수도 있습니다. 이것은 분명히 나를 도울 것입니다. setComposite는 Graphics2D라고 가정하고 있습니까? – Luft

+0

내가 아는 한, 그렇습니다. – adchilds