2012-05-16 7 views
3

Je développe une petite bibliothèque pour travailler à la fois dans l'application Android et dans l'application de bureau Java. J'ai besoin d'utiliser BufferedImage pour obtenir des valeurs RVB d'une image, mais je ne peux pas utiliser BufferedImage en Andorid. Et vice versa avec Bitmap.Java BufferedImage/Android Bitmap

Existe-t-il un moyen d'implémenter BufferedImage dans Android ou d'implémenter Bitmap dans l'application de bureau Java?

Remerciements

Répondre

3

Vous pourriez avoir votre bibliothèque ne soit utiliser un, mais une interface définiriez-vous qui a toutes les fonctions dont vous avez besoin. Ensuite, pour la version Android, vous implémentez l'interface en utilisant un objet Bitmap, et pour la version de bureau, vous implémentez l'interface avec un BufferedImage. L'appelant qui utilise votre bibliothèque passe dans l'implémentation de l'interface qui correspond à la plate-forme utilisée par l'appelant, et votre code n'a jamais à se soucier des choses spécifiques à la plate-forme.

Bien sûr, le fait que cela en vaille la peine ou non dépend de l'étendue de l'utilisation des objets image dans votre bibliothèque. Si ce n'est qu'une ligne ou deux de code qui doit lire l'image, cela peut ne pas valoir le coup, et les méthodes de réflexion données dans d'autres réponses pourraient être plus faciles.

0

Avez-vous essayé? : How to load BufferedImage in android?

Lorsque vous avez un bitmap, vous pouvez utiliser la méthode getPixel pour trouver la couleur.

+1

Oui, mais si j'utilise Bitmap alors je ne peux pas l'utiliser dans mes applications de bureau Java, car pour utiliser Bitmap, j'ai besoin d'utiliser des bibliothèques Android. Me comprenez-vous?? – megatxi

+0

ok, je comprends le problème. Je suis à la recherche d'un problème, mais je pense que vous devez créer votre propre BufferReader. : s – Skies

+0

Je sais, mais je saurais s'il y a une solution plus simple et plus rapide que de créer ma "propre classe de traitement d'image" – megatxi

0

Vous pouvez avoir du code wrapper qui essaie d'appeler les bibliothèques spécifiques à la plate-forme et attrape NoClassDefFoundError si elles ne sont pas présentes. De cette façon, vous pouvez déterminer dynamiquement les API appropriées à utiliser.

+0

Sonne bien. Si je vous comprends bien, je dois inclure les bibliothèques Andorid (qui inclut Bitmap) et la bibliothèque Java System (qui inclut bufferedImage) à la fois dans ma bibliothèque personnalisée? Puis attraper les exceptions en utilisant try/catch? Est ce bien? – megatxi