이미지뷰를 비트맵으로 변환하여 색상을 바꾸려고 코드를 찾아 가져와서 수정했는데요..
이런식으로 만들었습니다.
private Bitmap colorMaxChange(Bitmap bitmap){
int w = bitmap.getWidth(); //가로 길이
int h = bitmap.getHeight(); //세로 길이
int size = w * h; //총 크기를 구한다.
int [] pixels = new int[size]; // 크기만큼 픽셀 배열을 설정
bitmap.getPixels(pixels, 0, w, 0, 0, w, h); // 해당 Bitmap의 픽셀
for(int i = 0 ; i < size ; i++){ // 픽셀 수 만큼 반복
int color = pixels[i]; // 해당 픽셀의 컬러값
int r = (color >> 16) & 0xFF; // red에 해당하는 정보
int g = (color >> 8) & 0xFF; // green에 해당하는 정보
int b = (color) & 0xFF; // blue 에 해당하는 정보
r *= 255; // 색을 조정한다.
g *= 255;
b *= 255;
int y = (r + g + b) >> 100; //휘도
int c = pixels[i];
pixels[i] = y | (y << 8) | (y << 16) | (c & 0xFFe16b0c); //해당 픽셀에 값을 저장
}
// 픽셀 데이터를 이용하여 Bitmap에 설정
bitmap.setPixels(pixels, 0, w, 0, 0, w, h);
return bitmap;
}
색깔이 바뀌긴하는데 기존 이미지색이랑 겹쳐져서 색깔이 혼합되버리더군요;;;
실험으로 흰색 이미지로 하니 정상적으로 색깔이나왔습니다..
수치조절 다해봤는데,,, 알파값 준것도아닌데 색깔이 왜겹치는지 ㅠㅠㅠ
해당 코드가 잘못된건지 알려주세요..