2017-03-13 6 views
1

est Ci-dessous l'exemple de code qui donne erreur avec les image images de l'échantillon (Microsoft tulips.jpg)communes apache d'erreur d'image d'écriture d'imagerie

bufferedImage = Imaging.getBufferedImage(new file("Tulips.jpg")); 

File imageFile = new File("outputfile.jpg"); 
final Map<String, Object> optionalParams = new HashMap<String, Object>(); 
Imaging.writeImage(bufferedImage, imageFile, ImageFormats.JPEG, optionalParams); 

Ce code donne « Ce format d'image (Jpeg sur mesure) ne peut pas etre ecrit." Tous les pointeurs seraient d'une grande aide. J'ai cherché stackoverflow, google - aucune aide jusqu'à présent. Quand je lis la documentation, il indique que si bufferedImage.getType() == TYPE_UNKNOWN, il donne ce message mais ne comprend pas pourquoi il donne UNKNOWN.

Merci beaucoup pour votre aide.

Répondre

1

L'écriture dans des fichiers JPEG n'est pas prise en charge par Apache Commons Imaging. Vous pouvez voir les informations de format supportées ici: http://commons.apache.org/proper/commons-imaging/formatsupport.html (même la lecture JPEG n'est pas totalement supportée). Cependant, écrivez dans d'autres formats supportés (par exemple, vous pouvez changer le format de l'image en PNG dans votre appel de fonction writeImage et cela fonctionnera). De plus, Apache Commons Imaging n'est pas encore sorti, donc je ne recommanderais pas de l'utiliser dans un code critique. En alternative, vous pouvez jeter un oeil à la classe JDK javax.imageio.ImageIO (quelques exemples: https://docs.oracle.com/javase/tutorial/2d/images/saveimage.html).

Qu'essayez-vous exactement de réaliser dans votre code?

+0

Merci pour la réponse. J'ai négligé la colonne d'écriture. J'essaie de lire les images CMJN et de les convertir en RVB. Lire aussi DPI si moins de 300, réenregistrer et régler à 300 dpi. J'ai traversé les forums et tout cela conduit à l'imagerie apache commons [lien] (http://stackoverflow.com/questions/20096810/determine-dpi-of-image-in-java) [link] (http: // stackoverflow .com/questions/3123574/comment convertir-de-cmyk-en-rgb-en-java-correctement). – user9383

+0

@luckyfitness Mes plugins [TwelveMonkeys ImageIO] (https://github.com/haraldk/TwelveMonkeys) permettront 'ImageIO' de lire les JPEGs CMJN et de les réécrire au format RVB. Le DPI peut être contrôlé par des métadonnées standard (classe 'IIOMetadata'). – haraldK

+0

haraldK - Merci. J'ai vérifié douzeMonkeys ImageIO mais la dernière version dit d'utiliser JDK.1.8, nous utilisons JDK1.6.x. donc pas sûr s'il y a des correctifs qui ont été corrigés après la version 3.0.x. Dire aussi à la ppp pour voir si elle doit être réenregistrée à 300. – user9383