2012-03-27 2 views
1

이미지에서 한 색상을 흰색으로 대체해야합니다. ColorModel과 RGBImageFilter.substituteColorModel에 대해 읽었지만 잘 이해하지 못합니다.JAVA : ColorModel을 사용하여 한 색상을 다른 색상으로 대체하십시오.

내가 대체 할 색상은 다음과 같습니다 R : 113 G : 75 B :

그리고 물론 96, 흰색은 255, 255, 255이다.

직접 솔루션을 제공 할 수 있다면 좋겠지 만 그렇지 않은 경우 간단한 방법을 사용해도됩니다. 나는 단지 해결책을 원하고 싶지 않다, 나는 그 헛소문을 이해하고 싶다.

감사합니다.

+0

같은 문제가있는 것 같습니다. http://stackoverflow.com/q/2369809/422353. – madth3

답변

1

내 회사에서는 임베디드 디스플레이에서 자주 전환해야합니다. 우리는 색인 된 비트 맵을 사용하여 여러분이 이야기하는 것을 성취합니다. 기본 아이디어는 주어진 인덱스에 대한 팔레트를 전환하여 다른 모양과 느낌을 얻는 것입니다.

색인이 생성 된 비트 맵 아이디어는 팔레트에서 마음대로 256 색을 말한 것입니다. 팔레트의 각 슬롯에 원하는 RGB 값을 할당 할 수 있습니다. 이미지 자체는 팔레트에 대한 인덱스 목록입니다 (픽셀 당 단일 바이트). 이것은 CPU 및 저장 공간이 제한적인 플랫폼 (이미지 압축 풀기를 처리 할 수없고 풀 컬러 비트 맵을위한 여유 공간을 확보 할 수 없음)에서 정말 멋지다. 대체 팔레트 (녹색, 노랑, 빨강 등)를 만들 수 있습니다. 팔레트를 전환하면 그래픽이 완전히 달라집니다. 우리는 단추의 각 상태를 수행하지 않고도 색상을 전환 할 수있는 위젯에서 아주 미세한 그라디언트를 만드는 데이 방법을 사용합니다.

인덱스 비트 맵의 ​​특정 문제를 해결하려면 팔레트를 전환하고 하나의 팔레트에서 인덱스가 (113,75,96)이고 동일한 인덱스가 보유 된 두 번째 팔레트 (255,255,255)에 있는지 확인하십시오.

IndexColorModel은 AWT에서 시작하는 좋은 장소입니다.

행운을 빈다.

+0

사실 나는 그것에 대해 읽었지만 개념을 파악하지 못하고 코드에 적용 할 수 없습니다. http://www.webbasedprogramming.com/Tricks-of-the-Java-Programming-Gurus/ch12.htm#ImageFilters에서 꽤 좋은 페이지를 발견했지만 여전히 혼란 스럽습니다. –

관련 문제