我正在尝试使用JAI创建一个由4个TIF图像组成的单个马赛克,每个图像都是5000 x 5000.我编写的代码如下..
RenderedOp mosaic=null;
ParameterBlock pbMosaic=new ParameterBlock();
pbMosaic.add(MosaicDescriptor.MOSAIC_TYPE_OVERLAY);
RenderedOp in=null;
// Get 4 tiles and add them to the Mosaic
in=returnRenderedOp(path,"northwest.tif");
pbMosaic.addSource(in);
in=returnRenderedOp(path,"northeast.tif");
pbMosaic.addSource(in);
in=returnRenderedOp(path,"southwest.tif");
pbMosaic.addSource(in);
in=returnRenderedOp(path,"southeast.tif");
pbMosaic.addSource(in);
// Setup the ImageLayout
ImageLayout imageLayout=new ImageLayout(0,0,10000,10000);
imageLayout.setTileWidth(5000);
imageLayout.setTileHeight(5000);
imageLayout.setColorModel(in.getColorModel());
imageLayout.setSampleModel(in.getSampleModel());
mosaic=JAI.create("mosaic",pbMosaic,new RenderingHints(JAI.KEY_IMAGE_LAYOUT,imageLayout));
问题是所有4张图像都位于马赛克左上角的同一位置,因此其他四分之三的图像都是空的。任何人都可以告诉我如何选择构成马赛克的每张图片的位置,以便每个图片都出现在正确的位置?
由于
伊恩
答案 0 :(得分:1)
我认为您误解了在操作之前为每个源图像设置minX minY所需的文档。
northwest.tif应该有minX = 0和minY = 0,
northeast.tif应该有minX = 5000和minY = 0,
southwest.tif应该有minX = 0,minY = 5000和
southeast.tif应该有minx = 5000和minY = 5000
在文档中,他们建议您通过在反序列化操作上使用呈现提示直接“移动”文件的反序列化。
不知何故,马赛克只是一种正常的合成操作。