J'utilise la bibliothèque Java imgscalr pour redimensionner une image.
Le résultat d'un appel de méthode resize () est un objet BufferedImage. Je veux maintenant l'enregistrer dans un fichier (généralement .jpg).
Comment puis je faire ça? Je veux passer de BufferedImage
-> File
mais ce n'est peut-être pas la bonne approche?
java
file-io
bufferedimage
Ankur
la source
la source
NullPointerException
, utiliserif (outputfile.exists())
Vous pouvez enregistrer un
BufferedImage
objet à l'aide de la méthode write de lajavax.imageio.ImageIO
classe. La signature de la méthode est la suivante:Voici
im
leRenderedImage
à écrire,formatName
est la chaîne contenant le nom informel du format (par exemple png) etoutput
est l'objet de fichier dans lequel écrire. Un exemple d'utilisation de la méthode pour le format de fichier PNG est illustré ci-dessous:la source
La réponse se trouve dans le didacticiel de la documentation Java pour l'écriture / l'enregistrement d'une image .
La
Image I/O
classe fournit la méthode suivante pour enregistrer une image:Le tutoriel explique que
il peut donc être utilisé dans la méthode.
Par exemple,
Il est important d'entourer l'
write
appel avec un bloc try car, selon l'API , la méthode lève unIOException
"si une erreur se produit pendant l'écriture"Les objectifs, les paramètres, les retours et les lancers de la méthode sont également expliqués plus en détail:
Cependant, cela
formatName
peut encore sembler assez vague et ambigu; le tutoriel clarifie un peu les choses:Il existe cependant d'autres formats que vous pouvez utiliser:
Pour un exemple complet et pratique, on peut se référer à l' exemple d'Oracle
SaveImage.java
.la source
Créez et enregistrez une image java.awt.image.bufferedImage dans un fichier:
Remarques:
la source
Dans votre code:
la source
En une seule doublure:
la source