Java ImageIO – Skriv bild till fil
Det här är ett exempel på hur man skriver en bild till en fil med hjälp av verktygsklassen ImageIO i Java. ImageIO-klassen av javax.imageio-paketet tillhandahåller metoder för att lokalisera ImageReaders och ImageWriters, för att utföra kodning och avkodning och andra metoder för bildbehandling.
Bland metoderna för ImageIO-klassen finns write(RenderedImage im, String formatName, File output)
, write(RenderedImage im, String formatName, ImageOutputStream output)
och write(RenderedImage im, String formatName, OutputStream output)
metoder, som används för att skriva en bild till en fil. Alla metoder använder sig av en RenderedImage, vilket är bilden som ska skrivas, och en String formatName
, vilket är formatet på bilden som ska skrivas. Den första metoden stöder det givna formatet till en fil, den andra till en ImageOutputStream och den tredje till en OutputStream. Alla metoder returnerar false
om ingen lämplig ImageWriter hittas och true
annars.
Nedan använder vi write(RenderedImage im, String formatName, File output)
metod. Stegen vi följer är:
- Skapa en ny filinstans och konvertera den givna sökvägssträngen till ett abstrakt sökvägsnamn, vilket är den initiala bilden i en
.jpg
format. - Läs den redan befintliga bilden. Använd
read(File input)
API-metod för ImageIO, med filen skapad ovan som parameter. Den returnerar en BufferedImage som ett resultat av avkodning av filen med en ImageReader som väljs automatiskt bland de som för närvarande är registrerade. - Använd
write(RenderedImage im, String formatName, File output)
för att skriva bilden till en fil. Formatet kan vara annorlunda nu.
Observera att både read
och write
metoder kan skapa en IOException, så de är omgivna av en try-catch
blockera.
Ta en titt på kodavsnittet nedan:
ImageIOExample.java
package com.javacodegeeks.snippets.enterprise; import javax.imageio.ImageIO; import java.io.File; import java.io.IOException; import java.awt.image.BufferedImage; public class ImageIOExample { public static void main( String[] args ){ imageIoWrite(); } public static void imageIoWrite() { BufferedImage bImage = null; try { File initialImage = new File("C://Users/Rou/Desktop/image.jpg"); bImage = ImageIO.read(initialImage); ImageIO.write(bImage, "gif", new File("C://Users/Rou/Desktop/image.gif")); ImageIO.write(bImage, "jpg", new File("C://Users/Rou/Desktop/image.png")); ImageIO.write(bImage, "bmp", new File("C://Users/Rou/Desktop/image.bmp")); } catch (IOException e) { System.out.println("Exception occured :" + e.getMessage()); } System.out.println("Images were written succesfully."); } }
Detta var ett exempel på hur man skriver en bild till en fil med javax.imageio.ImageIO class.core java io