2010-05-05 3 views
2

나는 색으로 이미지를 자르는 작은 프로그램을 개발 중이다. 의 가장 쉬운 것색상 패턴을 사용하여 이미지를 자르는 방법은 무엇입니까?

이 예제 이미지를 사용하여 설명하기 :

black with a purple splotch of color

그리고 나는 검은 색 프레임없이 그냥 보라색 양식 새 이미지를 만들려고합니다.

누구에게 아이디어가 있습니까? Java 2D를 사용하고 있으므로 첫 번째 이미지의 보라색 영역에 "모양"객체를 만들어야한다고 생각합니다.

위키 백과 우수한 의사 코드와 애니메이션 그것에 페이지가 있습니다 :

답변

5

이미지가 당신이 보여처럼 문자 그대로의 경우, 당신은 할 수 :

  • 부하 BufferedImage의로 이미지 (ImageIO.read와 함께())
  • 새로운 BufferedImage를 만들 같은 크기의 알파 레이어 (예 : Type을 BufferedImage.TYPE_4BYTE_ABGR로 설정)
  • "수동으로"로드 된 BufferedImage에서 각 픽셀을 차례대로 탐색하여 getRGB()로 픽셀 색상을 가져온 다음
  • 색상이 검은 색이면 새 이미지에서 해당 픽셀을 투명하게 설정하고 그렇지 않으면 첫 번째 이미지에서 원래 색상으로 설정합니다 (setRGB() 메서드 참조)
  • ImageIO를 사용하여 새 이미지를 저장합니다. write())

멋진 방법이 있지만이 간단한 방법은 훌륭하고 이해할 수 있으며 표시된 유형의 이미지에 잘 작동합니다.

+0

좋은 답변입니다! 결국 해결책을 찾았습니다! 그리고 너 덕분에! 다시 한번 감사드립니다! – dafero

2

당신은 보라색 영역의 boundries을 발견 일부 홍수 채우기 알고리즘을 사용합니다.

http://en.wikipedia.org/wiki/Flood_fill

+0

답변 해 주셔서 감사합니다. Neil Coffey는 나에게 최고의 솔루션을 주었지만 어쨌든 감사드립니다! – dafero