Alternative Java pure à JAI ImageIO pour la détection d'images CMJN

d'abord je tiens à expliquer la situation/conditions qui conduisent à la question:

Dans notre application web, nous ne pouvons pas soutenir des images CMJN (JPEG) depuis IE 8 et ci-dessous ne peut pas les afficher.
Donc, nous avons besoin de détecter quand quelqu'un veut télécharger une image et de le nier.

Malheureusement, Java ImageIO de ne pas lire les images ou ne permettrait pas de me rendre à la détection de la couleur de l'espace. À partir de débogage, il semble que JPEGImageReader en interne devient l'espace de couleur de code 11 (ce qui voudrait dire JCS_YCCK) mais je ne peux pas en toute sécurité accéder à cette information.

Lors de l'interrogation du lecteur pour les types d'image je ne reçois rien pour les images CMJN, donc je pourrais assumer no image types = unsupported image.

Je me suis converti à la source de l'image CMJN RVB à l'aide d'un outil d'imagerie afin de tester si alors il serait lisible (j'ai essayé de simuler l'admin étapes lorsque vous obtenez le message "Pas de CMJN pris en charge"). Cependant, JPEGImageReader ne serait pas lire cette image, car il suppose (commentaire dans le source!)3-component espace de couleurs RVB, mais l'image d'en-tête des rapports de 4 éléments (peut-être RGBA ou ARGB) et donc une IllegalArgumentException est levée.

Ainsi, ImageIO n'est pas une option puisque je ne peux pas fiable obtenir de l'espace de couleur d'une image et je ne peux pas dire à l'admin pourquoi une image bien (il peut être affiché par le navigateur) ne serait pas accepté en raison d'une erreur interne.

Cela m'a conduit à essayer JAI ImageIO dont CLibJPEGImageReader fait un excellent travail et correctement lit toutes mes images de test.

Cependant, puisque nous sommes le déploiement de notre application dans un JBoss qui peuvent héberger d'autres applications, nous aimerions les garder aussi isolé que possible. Autant que je sache, j'aurais besoin d'installer JAI ImageIO pour le JRE ou autrement rendre le natif libs disponible pour les utiliser, et donc d'autres applications peuvent avoir accès à eux, ce qui pourrait causer des effets secondaires (au moins, nous devrions avoir à tester un lot pour s'assurer que ce n'est pas le cas).

Que l'explication de la question, et ici il s'agit de nouveau:
Java pur alternative à JAI ImageIO qui détecte de façon fiable et, éventuellement, convertit des images en CMJN?

Merci d'avance,

Thomas

source d'informationauteur Thomas