import java.awt.image.BufferedImage; import java.awt.Image; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriter; import javax.imageio.event.IIOWriteProgressListener; import javax.imageio.stream.ImageOutputStream; public class ImageWriterTest5 extends ImageWriterTest2 { public ImageWriterTest5(String sourceFile, String thumbnailFile, String destinationFile) { super(sourceFile, thumbnailFile, destinationFile); } protected void writeImage(BufferedImage image, BufferedImage thumbnail, String filename) { Iterator writers = ImageIO.getImageWritersByFormatName(getSuffix(filename)); if (writers.hasNext()) { ImageWriter writer = (ImageWriter)writers.next(); writer.addIIOWriteProgressListener(new WriteProgressDialog()); try { ImageOutputStream stream = ImageIO.createImageOutputStream(new File(filename)); writer.setOutput(stream); List thumbnails = new ArrayList(); thumbnails.add(thumbnail); IIOImage iioImage = new IIOImage(image, thumbnails, null); writer.write(iioImage); writer.dispose(); return; } catch (IOException ex) { ex.printStackTrace(); } } } public static void main(String[] args) { if (args.length == 3) { new ImageWriterTest5(args[0], args[1], args[2]); System.exit(1); } else { System.out.println("Usage: java ImageWriterTest5 "); } } }