import com.sun.media.jai.codec.TIFFEncodeParam;
import java.awt.*;
import java.awt.image.*;
import java.awt.image.renderable.*;
import java.io.*;
import java.util.*;
import javax.media.jai.*;

public class CreateMultiImageTiffFiles {
    public static void main(String[] args) {
        new CreateMultiImageTiffFiles(args);
    }
    
    public CreateMultiImageTiffFiles(String[] fileNames) {
        RenderedImage[] srcs = new RenderedImage[fileNames.length];
        
        ParameterBlock pb = (new ParameterBlock());
        pb.add(fileNames[0]);
        RenderedImage src0 = JAI.create("fileload", pb);
        ArrayList list = new ArrayList(srcs.length - 1);
        for(int i = 1; i < srcs.length; i++) {
            pb = (new ParameterBlock());
            pb.add(fileNames);
            list.add(JAI.create("fileload", pb));
        }
        
        TIFFEncodeParam param = new TIFFEncodeParam();
        param.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);
        
        param.setExtraImages(list.iterator());
        
        pb = (new ParameterBlock());
        pb.addSource(src0);
        pb.add("multipage.tiff").add("tiff").add(param);
        JAI.create("filestore", pb);
        
    }
}