2010-04-03 4 views
2

setRGB()을 사용하여 BufferedImage (TYPE_INT_RGB)의 개별 픽셀을 색칠하려고하지만 RGB 값의 형식을 지정하는 방법이 확실하지 않습니다. 나는 그 결과를 하나의 정수로 원한다. 3 개의 int 값 (빨강, 초록, 파랑)을 취하고 setRGB()에 올바른 형식의 정수를 반환하는 방법이 있습니까?Java의 BufferedImage에 대해 MapRGB와 동일한 기능이 있습니까?

+0

헛소리 문법이 잘못되었습니다. – SDLFunTimes

+2

질문을 편집했습니다. 원하지 않는 경우 되돌려주십시오. 또한 _Crap_ 뒤에 쉼표가 필요합니다. ;-) – trashgod

답변

2

당신의 int r, g을 가정하고 b을 수행 할 수 있습니다하십시오 BufferedImage 픽셀은 4 바이트의 int이기 때문에

int pixel = (r << 16) | (g << 8) | b; 

이다. 4 바이트는 Alpha, Red, Green 및 Blue 순으로 나타냅니다. 따라서 빨간색을 왼쪽으로 2 바이트 이동하고 녹색을 1 바이트 왼쪽으로 이동하면 bitwise-r, gb을 입력하면 setRGB()과 함께 사용할 유효한 픽셀을 얻게됩니다.

+0

아래에 제공된 대답은 Java API에 대한 깊은 지식을 보여 주지만이 대답을 사용하면 거의 모든 그래픽/이미지 처리 라이브러리 –

4
new Color(red, green, blue).getRGB(); 
+0

+1, 명확하고 간단합니다. –

관련 문제