출처: http://xiangxiang.tistory.com/entry/안드로이드-영상처리의-기본-Bitmap-을-배열로-배열을-Bitmap-으로
1. Bitmap 객체에서 픽셀단위 영상을 빼는 방법
- 영상정보를 가진 Bitmap 클래스의 bit 객체가 있습니다.
- bit 크기 만큼의 int 배열 pixels[][]를 선언합니다.
for(int i=0; i<bit.getHeight(); i++)
{
for(int j=0; j<bit.getWidth();j++)
{
pixels[i][j]=bit.getpixel(j,i);
}
}
2. int 배열의 값을 RGB로 나눈다
- 안드로이드 Bitmap에서 추출한 int 형의 픽셀정보는 Alpha Red Green Blue
각각 1바이트씩 4바이트로 이루어져 있습니다.
(참고로 Alpha값은 대부분 default값으로 ff 즉 255로 초기화 되어 있습니다.)
그렇기 때문에 알파값은 나중에서 배열에서 비트맵으로 넘겨줄 때만 사용합니다.
- 영상처리에는 RGB값만 있으면 되므로 이들을 추출해 보겠습니다.
int red= pixels[i][j]&0xff0000;
int green= pixels[i][j]&0xff00;
int blue= pixels[i][j]&0xff;
- 이제 우리는 red green blue 만을 이용할 수 있습니다.
3. 배열값으로 다시 Bitmap 을 구성한다.
- 똑같이 반대로 하면 되겠습니다.
int newPixels[]= ff * 0x1000000 + red * 0x10000 + green * 0xff + blue;
Bitmap newbit = Bitmap.createBitmap(newPixels, 0, bit.getWidth(), bit.getWidth(), bit.getHeight()
, Bitmap.Config.RGB_565);
'IT_Programming > Android_Java' 카테고리의 다른 글
[펌] FragmentManager, FragmentTransaction에 대해서! (0) | 2014.03.25 |
---|---|
[펌] YUV를 Bitmap 으로 바꾸기 (0) | 2014.03.25 |
[펌] Managing Bitmap Memory (0) | 2014.03.17 |
[펌][Android] Animation 정리 (0) | 2013.12.30 |
[Android Studio] Migrating from Eclipse (0) | 2013.12.17 |