2010-12-07 3 views
6

그래, 이건 ColorMatrixColorFilter의 이전 질문과 관련이 있지만 상당히 다른 질문이라고 생각합니다. ColorFilter 클래스를 확장하여 내 자신 만의 맞춤 색상 필터를 만드는 방법이 있는지 궁금합니다. 내가 성취해야 할 일이 있다면, 각 픽셀을 쿼리하고, RGB 값을 HSL 또는 LAB로 변환하고, 색조를 수정하고, RGB로 다시 변환하고, 픽셀을 새로운 값으로 설정하는 맞춤형 필터를 작성해야합니다.ColorFilter의 사용자 정의 서브 클래스 만들기?

나는이 작업을 수행하는 Drawable과 많은 양의 색상 이동을 수행하는 클래스를 작성할 수 있지만 모든 Drawable과 모든 Drawable에 대해 수동으로 호출해야한다고 생각합니다. 드로어 블 (Drawable) 인 반면, 컬러 필터 (ColorFilter)는이 점을 훌륭하게 처리합니다. LightingColorFilter와 ColorMatrixColorFilter의 존재를 감안할 때, 서브 클래 싱 될 수있는 것처럼 보이지만, 지금까지 어떤 종류의 문서를 찾기위한 나의 노력은 쓸데 없었습니다. 필자는 세 가지 (Lighting, ColorMatrix, ColorFilter) 중 하나의 소스 코드를 찾을 수없는 것 같습니다. 아마 그들은 네이티브 코드로 끝났다고 생각합니까?

내 질문은 : 어떻게 제대로 ColorFilter의 하위 클래스를 만들 수 있습니까? 좋은 답변을 찾을 수 없다면 누군가가 소스를 찾을 수 있고 (Android의 git을 검색했습니다.) 링크를 게시하면 도움이 될 것입니다.

감사합니다.

+0

마침내 나만의 ColorFilter를 쓸 수 있었습니까? 방법? – Prizoff

답변

0

당신이 말했듯이, source code은 ColorFilter가 네이티브 코드를 사용하기 때문에 실제로 서브 클래스를 만들 수 없다는 것을 보여줍니다.

원하는 것을 위해 자신 만의 클래스를 만드는 것 외에 다른 방법은 없을 것입니다.

+0

내 고유 컬러 필터를 쓸 수 없습니까? 또한 자신 만의 클래스를 만드는 것만으로도 Java가 충분히 빠르다고 생각합니까? 아니면 NDK를 통해 작성해야 할 것이 있습니까? – kcoppock

+0

네, NDK를 사용하여 클래스를 생성해야합니다. 성능 차이가 크기 때문에 일반적으로 사용합니다. 하지만 디버깅이 쉽기 때문에 Java에서 클래스를 작성하는 것이 좋습니다. 특히 NDK에 익숙하지 않은 경우 더욱 그렇습니다. – Dalmas

+2

150 포인트를 통해 NDK를 직접 확인해 보았습니다 ... bitmap_plasma 샘플이있는 것 같습니다. 다소 적응할 필요가있는 샘플입니다. Windows를 사용하는 경우 GCC 컴파일러 및 기타 도구를 실행하려면 Cygwin을 설치해야하지만 상당히 간단합니다. –