// we have at least two sources, let's merge them
//
// /////////////////////////////////////////////////////////////////////
final Iterator<CoverageProcessingNode> it = sources.iterator();
RenderedImage op = null;
GridGeometry2D gridGeometry = null;
ImageLayout layout = null;
final Hints hints = getHints();
final List<GridCoverage2D> sourceGridCoverages= new ArrayList<GridCoverage2D>();
do {
// //
//
// Get the source image and do the merge
//
// //
final CoverageProcessingNode currentSourceNode = (CoverageProcessingNode) it.next();
final GridCoverage2D currentSourceCoverage = (GridCoverage2D) currentSourceNode.getOutput();
sourceGridCoverages.add(currentSourceCoverage);
final GridGeometry2D gg = (GridGeometry2D) currentSourceCoverage.getGridGeometry();
if (gridGeometry == null) {
// get the envelope for the first source.
gridGeometry = gg;
// color model
final ComponentColorModel cm = new ComponentColorModel(
ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB),
false, false, Transparency.OPAQUE,
currentSourceCoverage.getRenderedImage()
.getSampleModel().getDataType());
layout = new ImageLayout();
layout.setColorModel(cm);
} else if (!gg.equals(gridGeometry))
throw new IllegalArgumentException(Errors.format(
ErrorKeys.MUST_SHARE_GRIDGEOMETRY_$1, "BandMerge"));
// //
//