7
votes

API Java à Exifool

Je suis intéressant dans l'analyse du résultat exjectif avec une API Java ou quelque chose comme ça.

J'ai fait des recherches, mais je n'ai trouvé aucun exemple. Par exemple, comment pourrais-je obtenir ces résultats dans mon projet Java?

Numéro de version exifestool: 8.22

Nom du fichier: Exifoltool.jpg

Annuaire: fichier T / images

Taille: 24 kb Date de modification de fichier / heure

etc .. Je cherche un "comment" ou quelque chose comme ça.


0 commentaires

3 Réponses :


0
votes

Je ne sais pas exifool, mais j'ai déjà utilisé Mediafertil pour lire et écrire exif Tags en Java (je l'ai utilisé pour la rotation automatisée de l'image JPEG)


0 commentaires

3
votes

0 commentaires

7
votes

Exetifool (pour Java) est conçu Pour être une abstraction de Java simple à utiliser et robuste de Phil Harvey's ExifTool. Je viens de faire la première publication publique la semaine dernière après avoir incubé le projet sous le parapluie du projet IMGSCALR pendant un moment.

Le projet est sous la licence Apache 2 Commercial respectueux de l'environnement.

Mon objectif pour la bibliothèque N'est pas simplement de résumer le code d'exécution du processus externe de l'appelant (comme la plupart des autres couches d'abstraction semblent faire) mais pour concevoir une emballage si étroitement intégration et résiliente (je vais clarifier ce que je veux dire ici plus tard), que vous traitez des instances de votre classe exjective exactement comme si vous le feriez s'il était écrit en Java.

Dans cette version initiale, je supporte les données de la balise de lecture (ajoutera une écriture dans une version future) et c'est aussi simple. comme ceci: xxx

utilisant exifool dans le nouveau "Mode Daemon" (-Stay_Open true CMD Line) est également pris en charge et allumer la prise en charge correspondre aussi facilement que la création de votre ex possible instance comme: xxx

la documentation sur Comment utiliser la classe exifolulaire est étendu, couvrant tout de la conception à la performance à la sécurité du fil.

En plus de faire appel à une extinutive simple à partir de Java, la classe utilise une quantité considérable de précautions afin de minimiser les problèmes d'exécution ainsi que de la capture et de la signalisation correctement toutes les erreurs pouvant survenir de manière bien documentée (au lieu de laisser des exceptions surprises à la bulle. des classes de base Java).

J'étais si pédant avec cette manipulation d'exception et la récupération des erreurs car la classe est conçue pour vous permettre d'utiliser Exifool dans un environnement de haute disponibilité, comme une application Web occupée. Je ne voulais pas simplement envelopper des objets de processus simples puis jeter mes mains en l'air si quelque chose a explosé. Je connaissais moi-même (et quelqu'un d'autre à l'aide de la classe) aurait besoin d'une API bien conçue pour permettre une récupération facile des erreurs.

Par exemple, une tentative d'utilisation d'un mode Daemon fera de même que la classe vérifie le sous-jacent. Installation de ExifTool pour la prise en charge de cette fonctionnalité et lancez une impressionnante non supportée avec des recommandations sur la manière de contourner le problème si elle n'est pas prise en charge.

En plus de la vérification de la condition préalable, afin de vous assurer que l'utilisation du La classe (nommément en mode Daemon) ne fuit pas les processus d'OS natifs ainsi que les entrées / sortiestreams utilisés pour communiquer avec eux, la classe fournit un fil de nettoyage automatique après un Intervalle d'inactivité spécifié (valeur par défaut est de 10 minutes) fermera proprement et les flux de lecture / écriture, rendant l'instance d'inactivité de la légère humble ex possible et facile à klee P autour de la réutilisation.

Toutes les ressources sont réinitialisées sur le prochain appel à la classe pour analyser davantage de métadonnées afin qu'il n'y ait pas besoin de jeter et de recréer de nouvelles instances. De plus, le fil de nettoyage n'existe qu'après de longues périodes d'inactivité et non sur un calendrier défini. Vous pouvez définir l'intervalle sur tout ce que vous voulez ou couper le fil de nettoyage complètement et gérer le nettoyage vous-même (appelez simplement fermer ()).

Ces conceptions font partie de mon objectif ultime de faire une intégration ultime dans un Application Java sans soudure, performante et facile.

Vous pouvez consulter le Page du projet principal Pour plus d'informations sur le projet, l'utilisation, la source, les liens de téléchargement, etc. Ou vous pouvez sauter directement à github et regardez via le code si vous préférez.


6 commentaires

@ Chinna_82 Cela dépend de l'image source - Si vous examinez la source d'exifool pour Java, le titre est défini comme cherche les données de balise "XPTITLE" et les mots-clés (notez que 's') recherche la balise "xpkeywords" - - Vous voulez vous assurer que votre image source contient cette donnée pour que cela fonctionne. Si vous devez rechercher d'autres balises, vous pouvez rechercher le code, définir les nouveaux types d'investissement et utiliser cette classe. Si cela fonctionne pour vous, veuillez soumettre la demande de retrait du projet et je vais l'examiner et l'accepter.


Peut-il prendre en charge un autre fichier image ... comme un fichier AI ou un fichier PSD


Exifool pour Java enveloppe l'indigène «Exifool» et exécute un ensemble de balises sur un fichier source - si Phil's Exiftool prend en charge le fichier, puis prefool for Java le supporte. (en résumé: "oui")


La version actuelle entretenue activement de l'outil est chez Github.com/mjeanroy/exiftool .


@ Triyadkalla Beaucoup d'apprentissage de vos efforts, lorsque j'ai visité le code source, il semble que le code (ou même le code de bibliothèque comme IM4JAVA) dépend fortement de l'existence d'une machine hôte. Je veux dire que si Exifool n'est pas présent sur la plate-forme de fonctionnement du code, ce code ne parvient pas à dériver des balises de métadonnées, ce qui en fait la plate-forme de la plate-forme. Y a-t-il une autre façon de lire des tags de métadonnées? Remarque: J'ai utilisé la bibliothèque d'imagerie Apache Commons pour supprimer les balises de métadonnées, mais après le retrait, je suis aussi capable de voir des étiquettes via Exifool.


@Kamol Image Meta est super complexe et varie des fournisseurs même des versions au fil du temps - il n'y a pas un meilleur outil de lutte contre la bataille que celui-ci, qui tente de recréer une mise en œuvre de manière similaire, originaire de Java serait une entreprise pluriannuelle. C'est pourquoi ma bibliothèque contribue à faciliter l'utilisation d'une utilisation directe à une application Java - elle est trop belle pour ignorer.