무작위 모양이 모두 검은 색으로 칠해진이 비트 맵을 가지고 있다고 가정 해 봅시다. 색상을 변경하기 위해 베일이 필요하다고 말하면 내 비트 맵이 모두 흰색으로 칠 해져야합니다. 거기에 뭔가가 있습니까?Android : 비트 맵의 색상을 변경하십시오.
답변
캔버스를 사용하는 경우 비트 맵의 색상을 변경하는 방법은 비트 맵 자체를 변경하는 것입니다. 관련된 단계는 다음과 같습니다.
어딘가에있는 기존의 비트 맵을로드하고 어떻게 든 빨간색으로 색칠하고 싶다고합시다.
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap);
그런 다음 비트 맵의 픽셀을 캔버스에 그리기 전에 수정해야합니다. 모든 픽셀을 보유 할 int 배열을 만듭니다.
int[] pixels;
bitmap.getPixels(pixels, 0, 0, 0, 0, width, height);
그런 다음 배열을 수정해야합니다 (예 : 빨간색 구성 요소에 추가). 그러나 지금 당장 가지고있는 것은 픽셀 배열 내부의 int 값입니다. R, G 및 B는 모두 내부에 포장되어 있습니다. 어떻게 검색합니까?
int red = Color.red(pixels[n]);
int green = Color.green(pixels[n]);
int blue= Color.blue(pixels[n]);
그런 다음 당신은 당신이 원하는에 의해 픽셀의 값을 수정, 당신은 루프 또는 그러나 당신이 좋아에 넣어, 다음 픽셀 배열에 다시 넣을 수 있습니다. 또한 RGB 값은 8 비트 값이기 때문에 0에서 255 사이의 값을가집니다.
바로 뒤에 정확히 반대되는 기능을 사용하여 되돌릴 것입니다.
bitmap.setPixels(pixels, 0, 0, 0, 0, width, height);
그리고 나서 Canvas.drawBitmap()을 호출 할 준비가되었습니다.
자주 묻는다면이 과정은 느려야합니다. 게임과 같은 실시간 앱에 관심이 있다면 캔버스가 느린 방법입니다.
희망이있었습니다.
으로 설정할 수 있습니다. 우선 픽셀을 초기화해야하므로 int [] pixels = null; 또는 또한 컴파일 오류가 .. 두 번째 int 입력 할 수 없습니다 (int n = 0; n
루프, 두 번 사용 :) , 효과가있었습니다. 감사 :) –
- 1. Android : 목록 행의 색상을 변경하십시오.
- 2. Android : 비트 맵의 잘못된 RGB 값
- 3. Android에서 비트 맵의 색상을 다른 색상으로 변경하려면 어떻게해야합니까?
- 4. actionBar에서 tabview의 색상을 변경하십시오.
- 5. android의 밑줄 색상을 변경하십시오.
- 6. 비트 맵의 병렬 처리
- 7. 비트 맵의 가운데 텍스트
- 8. 안드로이드는 비트 맵의 해시를 계산합니다.
- 9. C에서 비트 마스크와 비트 맵의 차이점
- 10. UISplitView에서 RootViewController의 색상을 변경하십시오.
- 11. matlab에있는 이미지의 색상을 변경하십시오.
- 12. jstree 노드의 색상을 변경하십시오.
- 13. MKPinAnnotationView 그룹의 색상을 변경하십시오.
- 14. 컨트롤 색상을 기본값으로 변경하십시오.
- 15. UINavigationItem 색상을 검정색으로 변경하십시오.
- 16. 배열, 색상을 변경하십시오.
- 17. 스크롤 막대의 색상을 변경하십시오.
- 18. 백그라운드에서 색상을 변경하십시오.
- 19. UILabel 색상을 애니메이션으로 변경하십시오.
- 20. 색상을 TabHost로 변경하십시오.
- 21. iPhone - 색상을 동적으로 변경하십시오.
- 22. 비트 맵의 픽셀을 회전하는 방법
- 23. 캔버스와 비트 맵의 관계는 무엇입니까?
- 24. C에서 WriteableBitmap과 비트 맵의 차이점
- 25. 파일에서 비트 맵의 해상도를 얻으십시오.
- 26. 비트 맵의 앤티 앨리어싱을 끕니다.
- 27. 비트 맵의 C#의 RGB 값을 얻기
- 28. 비트 맵의 크기를 조정 한 후 새 비트 맵의 결과가 부드럽습니다. 비트 맵
- 29. 안드로이드 비트 맵의 크기는 VM 예산
- 30. 어떻게 비트 맵의 투명도를 조절할 수 있습니까?
비트 맵을 흰색으로 먼저 그려야 할 필요는 없습니다. 배경을 가진 언제든지 설정할 수 있습니다. – AkashG
drawBitmap (비트 맵, 행렬, 페인트 (녹색)) 명령을 사용하는 이유는 무엇입니까? 내 비트 맵은 검은 색으로 남아 있습니다. 이렇게하는 방법이 있습니까? 아니면 모든 것을 엉망으로 만들었습니까? –
나는 페인트 (색상 녹색) 그게 왜 painting.pass only 매개 변수를 페인트 및 페인트에 녹색 페인트로 뭔가 문제가 있어야한다고 생각합니다. paint.setColor (Color.GREEN); – AkashG