JAI를 사용하여 이미지에 "경계선"을 추가하고 있습니다. 예 :JAI를 사용하면 팔레트에 새 색상을 어떻게 추가합니까?
ParameterBlock pb = new ParameterBlock();
pb.addSource(r);
pb.add(leftPad);
pb.add(rightPad);
pb.add(topPad);
pb.add(bottomPad);
pb.add(new BorderExtenderConstant(consts));
r = JAI.create("border", pb);
위의 'consts'값은 ColorModel에 따라 다릅니다. ComponentColorModel을 사용할 때 각 픽셀에는 자체 색상이 있으므로 팔레트를 사용하지 않아도됩니다. 이미지에 팔레트 (GIF, PNG, ...)가있는 경우 ColorModel은 IndexColorModel입니다.
IndexColorModel을 사용할 때 'consts'는 크기가 1 인 double [] 배열입니다. 배열의 값은 색상 표의 색인입니다.
새로운 IndexColorModel을 작성하여 팔레트를 수정하는 방법을 찾았지만 코딩해야 할 논리가 정신 나간 것입니다! 예를 들어, 내가 팔레트에서 가질 수있는 색상의 수는 많은 요인에 달려 있습니다. 또한 새 팔레트를 추가하기 위해 팔레트에서 색상을 제거해야하는 경우, 제거하기 가장 좋은 색상을 결정하는 논리가 필요합니다. 이전에 해당 색상을 참조하는 모든 픽셀을 수정하십시오. 와우, 많은 코드입니다!)
내 질문은 어떻게 팔레트에 색상을 추가하나요? 기존 도서관이 있습니까? 또는 ioimage에서 무언가를 사용해야합니까? (솔직히 말해서 jai가 "종료"되고 ioimage가 "시작"되는 곳에서 약간 혼란 스럽습니다.)
또한, 사이드 질문으로 인해 팔레트에 약 10 색만있는 테스트 이미지가 다음과 같이 읽혀집니다. 256 색 있습니다. 그런 다음 jai로 이미지를 저장하면 256 색이 모두 저장됩니다 (11-255 모두 검정색). 왜 이런 짓을 한거야?
감사합니다. David