Skip to content

Instantly share code, notes, and snippets.

@balamuru
Created October 12, 2014 18:32
Show Gist options
  • Save balamuru/ba81aef6eb617323689c to your computer and use it in GitHub Desktop.
Save balamuru/ba81aef6eb617323689c to your computer and use it in GitHub Desktop.
import org.apache.commons.imaging.Imaging;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageInputStream;
import java.awt.image.BufferedImage;
import java.io.File;
public class ReadAndWrite {
public static void main(String[] args)
throws Exception {
final String inputPath = "/home/vinayb/Downloads/in.tif";
final String outputPath = "/home/vinayb/Downloads/out.tif";
new File(outputPath).delete(); //cleanup
final File inputFile = new File(inputPath);
final File outputFile = new File(outputPath);
//setup reader
final ImageInputStream imageInputStream = ImageIO.createImageInputStream(inputFile);
final ImageReader imageReader = ImageIO.getImageReaders(imageInputStream).next();
imageReader.setInput(imageInputStream);
//read image
final BufferedImage bImage = imageReader.read(0);
//setup writer based on reader
final ImageWriter imageWriter = ImageIO.getImageWriter(imageReader);
imageWriter.setOutput(ImageIO.createImageOutputStream(outputFile));
//write
imageWriter.write(null, new IIOImage(bImage, null, null), imageWriter.getDefaultWriteParam());
//print info about the input and output images
System.out.println("#### input compression: " + Imaging.getImageInfo(inputFile).getCompressionAlgorithm());
System.out.println("#### in format: " + Imaging.getImageInfo(inputFile).getFormat());
System.out.println("The output settings should match the input settings");
System.out.println("#### output compression: " + Imaging.getImageInfo(outputFile).getCompressionAlgorithm());
System.out.println("#### output format: " + Imaging.getImageInfo(outputFile).getFormat());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment