안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 Bitmap 선언문으로 얻은 이미지의 RGB값을 얻어오려고 하는데 잘 되질 않아 질문을 드려봅니다 ㅠ
우선 아래에 있는 소스를 보면, 비트맵의 픽셀을 얻어와 각 int형 변수에 값을 넣는 문입니다. (For문 돌림)
Bitmap bm= bitmap.copy(Config.ARGB_8888, true);
int bValue = bm.getPixel(x, y) & 0x000000FF;
int gValue = bm.getPixel(x, y) & 0x0000FF00 >> 8;
int rValue = bm.getPixel(x, y) & 0x00FF0000 >> 16;
디버깅을 해보면 우선 첫문장인 int bValue = bm.getPixel(x, y) & 0x000000FF; 에서는 제대로 값을 얻어 옵니다. B채널 값을 지정하였으니 B값을 얻어왔겠지요??.
그런데 2번째 구문부터 위의 B채널과 동일한 값을 그대로 얻어옵니다...
그 결과 그레이스케일(흑백) 화면이 나오게됩니다.
저런식으로 RGB 값을 얻어오는것이 아니라면, 어떻게 RGB 각각의 값을 얻어오는지 질문을 드립니다.
몇일동안 계속 RGB 채널 값 나누는것만 찾아보았습니다만, 해결하지 못하고 있습니다 ㅠ.ㅠ
도움의 손길을 주세효~~ ;ㅁ;
우선 아래에 있는 소스를 보면, 비트맵의 픽셀을 얻어와 각 int형 변수에 값을 넣는 문입니다. (For문 돌림)
Bitmap bm= bitmap.copy(Config.ARGB_8888, true);
int bValue = bm.getPixel(x, y) & 0x000000FF;
int gValue = bm.getPixel(x, y) & 0x0000FF00 >> 8;
int rValue = bm.getPixel(x, y) & 0x00FF0000 >> 16;
디버깅을 해보면 우선 첫문장인 int bValue = bm.getPixel(x, y) & 0x000000FF; 에서는 제대로 값을 얻어 옵니다. B채널 값을 지정하였으니 B값을 얻어왔겠지요??.
그런데 2번째 구문부터 위의 B채널과 동일한 값을 그대로 얻어옵니다...
그 결과 그레이스케일(흑백) 화면이 나오게됩니다.
저런식으로 RGB 값을 얻어오는것이 아니라면, 어떻게 RGB 각각의 값을 얻어오는지 질문을 드립니다.
몇일동안 계속 RGB 채널 값 나누는것만 찾아보았습니다만, 해결하지 못하고 있습니다 ㅠ.ㅠ
도움의 손길을 주세효~~ ;ㅁ;




연산순서가 >> 가 먼저이지 않나요?
>> 하기 전에 괄호로 싸주세요...