2012-05-16 5 views
3

Android 애플리케이션과 Java 데스크톱 애플리케이션에서 모두 작동 할 수있는 작은 라이브러리를 개발 중입니다. 이미지에서 RGB 값을 가져 오려면 BufferedImage를 사용해야하지만 Andorid에서는 BufferedImage를 사용할 수 없습니다. 그리고 비트 맵을 가진 반역자.Java BufferedImage/Android 비트 맵

Android에서 BufferedImage를 구현하거나 Java 데스크톱 응용 프로그램에서 Bitmap을 구현할 수있는 방법이 있습니까 ??

감사합니다.

답변

3

http://hg.l33tlabs.org/twl/file/tip/src/de/matthiasmann/twl/utils/PNGDecoder.java

당신은 라이브러리는 하나, 그러나 당신이 당신이 필요로하는 모든 기능을 가지고 정의하는 몇 가지 인터페이스를 사용하지있을 수 있습니다. 그런 다음 Android 버전의 경우 Bitmap 객체를 사용하여 인터페이스를 구현하고 데스크톱 버전의 경우 BufferedImage를 사용하여 인터페이스를 구현합니다. 라이브러리를 사용하는 호출자는 호출자가 사용중인 플랫폼에 해당하는 인터페이스 구현에서 전달되며 코드는 플랫폼 관련 항목에 대해 걱정할 필요가 없습니다.

물론 이러한 노력의 가치가 있는지 여부는 이미지 객체가 라이브러리에서 얼마나 광범위하게 사용되는지에 따라 다릅니다. 이미지를 읽는 데 필요한 코드가 한 줄 또는 두 줄이면 문제가 될만한 가치가 없을 수도 있고, 다른 대답에 제공된 반사 방법이 더 쉬울 수도 있습니다.

0

시도해보십시오. : How to load BufferedImage in android?

비트 맵을 가지고있을 때 getPixel 방법을 사용하여 색상을 찾을 수 있습니다.

+1

네,하지만 비트 맵을 사용하는 경우 자바 데스크톱 응용 프로그램에서 사용할 수 없습니다. 비트 맵을 사용하려면 Android 라이브러리를 사용해야하기 때문입니다. 너 나 이해해? – megatxi

+0

오케이, 문제를 이해합니다. 나는 문제를 찾고 있지만 당신 자신의 BufferReader를 만들어야한다고 생각한다. : – Skies

+0

알아,하지만 내 자신의 이미지 처리 클래스를 만드는 것보다 쉽고 빠른 해결책이 있는지 알고 싶습니다. – megatxi

0

플랫폼 관련 라이브러리를 호출하는 래퍼 코드가있을 수 있으며,없는 경우 NoClassDefFoundError를 포착 할 수 있습니다. 이렇게하면 사용할 적절한 API를 동적으로 결정할 수 있습니다.

+0

좋은 소리. 내가 올바르게 이해한다면, 커스텀 라이브러리에 Andorid 라이브러리 (Bitmap 포함)와 Java System Library (bufferedImage 포함)를 모두 포함시켜야합니까? 그런 다음 try/catch를 사용하여 예외를 catch합니까? 맞아? – megatxi