protected RenderedImage createRenderedImage(
final ParameterBlockJAI parameters, final RenderingHints hints) {
parameters.getSources();
RenderedImage[] images =
(RenderedImage[])
parameters
.getSources()
.toArray(new RenderedImage[parameters.getSources().size()]);
MosaicType type = getParameter(parameters, 0);
PlanarImage[] alphas = getParameter(parameters, ALPHA_PARAM);
ROI[] rois = getParameter(parameters, ROI_PARAM);
double[][] thresholds = getParameter(parameters, THRESHOLD_PARAM);
Range[] noData = getParameter(parameters, NODATA_RANGE_PARAM);
double[] backgrounds = getParameter(parameters, BACKGROUND_PARAM);
ImageWorker iw = new ImageWorker();
iw.setRenderingHints(hints);
iw.setBackground(backgrounds);
iw.mosaic(images, type, alphas, rois, thresholds, noData);
return iw.getRenderedImage();
}