// // MakeLZW.java // import loci.common.services.ServiceFactory; import loci.formats.ImageReader; import loci.formats.meta.IMetadata; import loci.formats.out.TiffWriter; import loci.formats.services.OMEXMLService; /** * Converts the given image file to an LZW-compressed TIFF. * * <dl><dt><b>Source code:</b></dt> * <dd><a href="http://trac.openmicroscopy.org.uk/ome/browser/bioformats.git/components/bio-formats/utils/MakeLZW.java">Trac</a>, * <a href="http://git.openmicroscopy.org/?p=bioformats.git;a=blob;f=components/bio-formats/utils/MakeLZW.java;hb=HEAD">Gitweb</a></dd></dl> */ public class MakeLZW { public static void main(String[] args) throws Exception { ImageReader reader = new ImageReader(); ServiceFactory factory = new ServiceFactory(); OMEXMLService service = factory.getInstance(OMEXMLService.class); IMetadata omexmlMeta = service.createOMEXMLMetadata(); reader.setMetadataStore(omexmlMeta); TiffWriter writer = new TiffWriter(); for (int i=0; i<args.length; i++) { String inFile = args[i]; String outFile = "lzw-" + inFile; System.out.print("Converting " + inFile + " to " + outFile); reader.setId(inFile); writer.setMetadataRetrieve(omexmlMeta); writer.setCompression("LZW"); writer.setId(outFile); int planeCount = reader.getImageCount(); for (int p=0; p<planeCount; p++) { System.out.print("."); byte[] plane = reader.openBytes(p); writer.saveBytes(p, plane); } System.out.println(" [done]"); } } }