2012-05-16 38 views
3

我正在開發一個小型庫,以在Android應用程序和Java桌面應用程序中工作。我需要使用BufferedImage從圖像中獲取RGB值,但我無法在Andorid中使用BufferedImage。反之亦然Bitmap。Java BufferedImage/Android位圖

有什麼辦法可以在Android中實現BufferedImage或在Java桌面應用程序中實現Bitmap?

謝謝

回答

3

你可以有你的庫沒有使用任何一個,但你定義一個擁有所有你所需要的功能的一些接口。然後,對於Android版本,您可以使用Bitmap對象實現接口,而對於桌面版本,可以使用BufferedImage實現接口。使用你的庫的調用者通過與調用者使用的平臺相對應的接口的實現,並且你的代碼永遠不必擔心平臺特定的東西。

當然,這是否值得努力取決於圖像對象在圖書館中的使用範圍。如果只是需要讀取圖像的一行或兩行代碼,則可能不值得麻煩,其他答案中給出的反射方法可能更容易。

0

你試試這個嗎? :How to load BufferedImage in android?

當您有位圖時,您可以使用getPixel方法來查找顏色。

+1

是的,但如果我使用位圖,那麼我不能在我的Java桌面應用程序中使用它,因爲要使用位圖我需要使用Android庫。你明白我說的嗎?? – megatxi

+0

好的,我明白這個問題。我正在尋找一個問題,但我認爲你需要創建自己的BufferReader。 :s – Skies

+0

我知道,但我知道是否有比創建「自己的圖像處理類」更簡單快捷的解決方案。 – megatxi

0

您可以使用包裝器代碼嘗試調用特定於平臺的庫,並在NoClassDefFoundError不存在時捕獲NoClassDefFoundError。這樣您可以動態確定要使用的適當API。

+0

聽起來不錯。如果我理解正確,我必須在我的自定義庫中包含Andorid庫(包括位圖)和Java系統庫(包括bufferedImage)?然後使用try/catch捕獲異常?這樣對嗎? – megatxi