package apps;
import javax.imageio.ImageIO;
import javax.media.jai.ImageLayout;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import javax.media.jai.RenderedOp;
import javax.media.jai.operator.MosaicDescriptor;
import java.awt.*;
import java.awt.image.renderable.ParameterBlock;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
/**
* User: jeichar
* Date: Oct 19, 2010
* Time: 11:25:16 AM
*/
public class MosiacImages {
private static final int MARGIN = 50;
public static void main(String[] args) throws IOException {
File[] imageFiles = new File("/tmp").listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.startsWith("pdf");
}
});
ImageLayout layout = new ImageLayout();
layout.setTileWidth(500);
layout.setTileHeight(500);
ParameterBlock pbMosaic=new ParameterBlock();
float height = 0;
for (File imageFile : imageFiles) {
PlanarImage source = JAI.create("fileload", imageFile.getPath());
ParameterBlock pbTranslate=new ParameterBlock();
pbTranslate.addSource(source);
pbTranslate.add(0f);
pbTranslate.add(height);
RenderedOp translated = JAI.create("translate", pbTranslate, new RenderingHints(JAI.KEY_IMAGE_LAYOUT,layout));
pbMosaic.addSource(translated);
height += source.getHeight() + MARGIN;
}
RenderedOp mosaic = JAI.create("mosaic", pbMosaic, new RenderingHints(JAI.KEY_IMAGE_LAYOUT,layout));
ImageIO.write(mosaic, "png",new File("/tmp/mosaic-img.png"));
}
}