public static PlanarImage createColoredMaskImage(Color color, RenderedImage alphaImage, RenderingHints hints) { RenderedOp colorImage = ConstantDescriptor.create( (float) alphaImage.getWidth(), (float) alphaImage.getHeight(), new Byte[]{ (byte) color.getRed(), (byte) color.getGreen(), (byte) color.getBlue(), }, hints); return BandMergeDescriptor.create(colorImage, alphaImage, hints); }
/** * Perform a BandMerge operation between the underlying image and the provided one. * * @param image * to merge with the underlying one. * @param before <code>true</code> if we want to use first the provided image, <code>false</code> * otherwise. * * @return this {@link ImageWorker}. * */ public final ImageWorker addBand(RenderedImage image, boolean before) { this.image = before? BandMergeDescriptor.create(image, this.image, this.getRenderingHints()): BandMergeDescriptor.create(this.image, image, this.getRenderingHints()); invalidateStatistics(); return this; }
luImage = BandCombineDescriptor.create(luImage, matrix, hints); image = BandMergeDescriptor.create(image, luImage, hints);
op = currentSourceCoverage.getRenderedImage(); else { op = BandMergeDescriptor.create(op, currentSourceCoverage.getRenderedImage(), hints);
public ColorReduction(RenderedImage image, RenderingHints hints, int numColors, int alpaThreshold, int subsx, int subsy) { super(image, new ImageLayout(image), null, false); this.numColors = numColors; this.alphaThreshold = alpaThreshold; if (image.getColorModel().hasAlpha()) { RenderedImage alpha = BandSelectDescriptor.create(image, new int[] { image.getSampleModel().getNumBands() - 1 }, null); alpha = MultiplyConstDescriptor.create(alpha, new double[] { alphaThreshold }, null); image = BandSelectDescriptor.create(image, new int[] { 0, 1, 2 }, null); final ImageLayout layout = new ImageLayout(); layout.setColorModel(new ComponentColorModel(ColorSpace .getInstance(ColorSpace.CS_sRGB), true, false, Transparency.BITMASK, DataBuffer.TYPE_BYTE)); image = BandMergeDescriptor.create(image, alpha, new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout)) .getNewRendering(); this.setSource(image, 0); } // force palette computation this.paletteBuilder = new CustomPaletteBuilder(image, this.numColors,subsx, subsy, 1); this.hints=hints; }
image = BandMergeDescriptor.create(image, luImage, hints); invalidateStatistics(); return this;
new Byte[] {new Byte(alpha)}, new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout)); result = BandMergeDescriptor.create(expanded, alphaBand, null); } else {