이미지의 특정 좌표값을 입력하였을 때 해당 픽셀의 RGB를 추출하는 가장 간단한 방법은 bitmap.getPixel(x,y)을 사용하는 것이다.
getPixel(x,y)은 정확히는 RGB가 아닌 ARGB 값을 추출하는 함수이다.
RGB는 모두가 알다시피 RED, GREEN, BLUE로 이루어져 있고, ARGB는 RGB에 ALPHA(투명도)를 추가한 것이다.
그러나 A,R,G,B 값을 각각 따로 추출할 수 있기 때문에 이 점에 대해서는 크게 신경쓰지 않아도 된다.
getPixel은 bitmap 클래스의 함수이기 때문에 우선 추출하기를 원하는 이미지를 bitmap 형식으로 가져온다.
bitmap 형식으로 이미지를 불러올 때는 bitmap의 createBitmap()을 사용하거나 BitmapFactoy 클래스를 사용한다.
이에 대한 자세한 내용은 다른 블로그를 참조하기를 바란다.
(참조 : http://warmz.tistory.com/415)
bitmap 객체로 이미지를 생성했다면 아래의 코딩과 같은 방식으로 사용하면 된다.
1 2 3 4 5 | int rgb = bitmap.getPixel(261,207); //원하는 좌표값 입력 int A = Color.alpha(rgb); //alpha값 추출 int R = Color.red(rgb); //red값 추출 int G = Color.green(rgb); //green값 추출 int B = Color.blue(rgb); //blue값 추출 |
A,R,G,B의 값 중 원하는 값만 골라서 추출할 수 있기 때문에 편리하다.
SSISO Community