출처: http://gogorchg.tistory.com/entry/Android-Opengl-es-%ED%99%94%EB%A9%B4%EC%9D%B4-%ED%95%98%EC%96%97%EA%B2%8C-%EB%B3%B4%EC%9D%B4%EB%8A%94-%ED%98%84%EC%83%81
Nexus S 이상 때부터 Opengl을 사용할 때,
본래 Bitmap 이미지의 크기를 2의 배수로 지정해주지 않으면,
그 Object를 하얗게 뿌려버리더군요.
그래서 다음과 같은 함수를 만들어서 사용을 합니다.
private int getMinPowerByTwo(int value) {
int result = 2;
do {
result *= 2;
} while(result < value);
return result;
}
위 함수는 계속 2씩 곱해 나가다가 value 값 보다 커졌을 경우,
그 값을 리턴 시켜주는 거지요.
즉, 500x168 이라는 이미지가 있을 경우에는
위 함수를 통하여 우선 512 x256의 크기로 Bitmap을 리사이징 하고
Texture에 저장을 시킨 후,
Texture 크기를 500x168로 맞추면 되는 거죠^^
width = getMinPowerByTwo(bmp.getWidth());
height = getMinPowerByTwo(bmp.getHeight());
Bitmap tmpBmp = Bitmap.createScaledBitmap(bmp, width, height, true);
먼가 부분적으로 설명을 하여 이해하기가 힘들실지도 모르지만,
분명 어느정도 기초가 쌓여가면서 예제 소스들 보시고
이걸 보시면 아하 ~ 하면서 이해를 금방 하실 수 있을겁니다.^^
그럼 오늘도 즐코딩요~ㅋ
'구글과인터넷 > 안드로이드' 카테고리의 다른 글
안드로이드 Android ndk Opengl es LoadTexture 관련 (0) | 2012.12.12 |
---|---|
안드로이드 android ndk 디버그 하는법 (0) | 2012.12.12 |
안드로이드 android NDK jni 폴더안에 폴더를 만들어 빌드해보기 (0) | 2012.12.12 |