Bibliothèque de traitement d'images pour Android et Java
Je suis actuellement en train de travailler sur un petit projet, qui doit charger une image à partir d'une URL, de les redimensionner et de changer la profondeur de couleur de 16 couleurs en utilisant un certain palette de couleurs. Le principal problème pour moi est que je veux un programme, que je puisse utiliser sur un appareil Android et sur un ordinateur de bureau.
Connaissez-vous une bonne librairie de traitement d'image qui fonctionne sur les deux systèmes?
Merci d'avance.
Vous devez vous connecter pour publier un commentaire.
Il existe plusieurs outils:
Les réponses sur cette page sont tout à fait en date de février 2014. J'étais à la recherche d'un Android gratuit librairie de traitement d'image et je suis tombé sur le Stanford notes de cours ici: http://www.stanford.edu/class/ee368/Android/index.html
Enquête un peu plus loin, je découvre qu'ils sont à l'aide de OpenCV dans leur matériel de cours. Il dispose d'une interface Java (avec beaucoup d'autres langues), mais la bibliothèque est écrite en mode natif en C++. Ils indiquent que:
Je suis excité(!) d'avoir trouvé cela, impatient de rentrer à la maison et lui donner un aller.
La Android NDK vous permet d'utiliser un C/C++ de la bibliothèque qui ne nécessite pas de java.awt ou à l'un des Android classes. Par exemple, vous pouvez facilement compiler libpng comme une bibliothèque partagée pour Android, puis d'écrire une interface JNI pour passer des images de la Java de la couche de la png de la bibliothèque. De la même façon, vous serez également en mesure de compiler libpng comme une bibliothèque partagée pour votre bureau d'ordinateur et de l'utiliser à partir de là.
J'ai récemment écrit un tutoriel sur la façon de compiler les bibliothèques open-source pour Android. Si vous parcourez la source Android, vous trouverez quelques-uns des classes qui utilisent la skia bibliothèque graphique via jni. Je n'ai pas utilisé skia avant, mais depuis Android a skia dans son cadre de base, il ne devrait pas être trop difficile de le faire fonctionner dans votre application/logiciel de bureau.
L'écriture de la croix-plate-forme de programmes a été une zone de l'intérêt actif parmi les développeurs d'applications mobiles de la communauté, et certains moteurs comme libgdx ont obtenu vraiment bon. Donc, ce que vous tentez est certainement possible.
Octoate,
Je ne pense pas qu'il y est une bibliothèque qui existe et qui fait ce que vous voulez, la raison en est que sur la non-plate-forme mobile de chaque graphique que vous allez utiliser en Java va utiliser la Java2D pipeline de rendu à un certain degré. Sur Android, ce qui n'existe pas.
Android dispose de son propre pipeline graphique pour la manipulation d'images et réalité simplifie beaucoup de choses sont plus complexes en Java standard.
Tout cela étant dit, il semble que vous ayez trouvé une bibliothèque (JJIL) qui agit comme une couche d'abstraction sur ces différences, dans ce cas, je serais un peu inquiet au sujet de la performance et de procéder à des essais dans votre propre code pour voir comment il se comporte par rapport à la plate-forme de méthodes. Par exemple, j'ai vu cette citation de JJIL:
Quand je regarde la source de RgbImages, il ressemble à l'image des données sont convertis et stockés dans un tableau interne; l'ensemble de ces couches d'abstraction va vous coûter du temps CPU et de la mémoire, surtout que les images sur les appareils mobiles deviennent de plus en raison de la hausse de la résolution des caméras et des connexions haut débit.
Ce ne peut être que grand d'une question, mais encore une fois, vous aurez probablement envie de faire quelques profilage/test/comparaisons de performances.
Toute pure bibliothèque Java devrait fonctionner sur les deux plates-formes. Une recherche Google de "Java librairie de traitement d'image" produit plusieurs résultats. Essayer de trouver le poids le plus léger lib qui répond à vos fins, depuis la mémoire et le PROCESSEUR sont limitées sur les appareils mobiles.
Barry