Package com.lightcrafts.mediax.jai

Examples of com.lightcrafts.mediax.jai.PlanarImage


            // Retrieve the Interpolation object.
            Interpolation interp = (Interpolation)pb.getObjectParameter(4);

            // Determine the effective source bounds.
            Rectangle srcBounds = null;
            PlanarImage dst = op.getRendering();
            if (dst instanceof GeometricOpImage &&
                ((GeometricOpImage)dst).getBorderExtender() == null) {
                srcBounds =
                    new Rectangle(src.getMinX() + interp.getLeftPadding(),
                                  src.getMinY() + interp.getTopPadding(),
View Full Code Here


        // from the nodes Hashtable and set it as a source
        // in the sources Vector.
        replacedSrcs.add(nodes.get(Long.valueOf(serverNodeDesc)));
    }
      } else {
    PlanarImage pi =
        PlanarImage.wrapRenderedImage((RenderedImage)obj);
    replacedSrcs.add(pi);
      }
  }
 
View Full Code Here

        if (name.equals("roi")) {
            ParameterBlock pb = op.getParameterBlock();

            // Retrieve the rendered source image and its ROI.
            PlanarImage src = (PlanarImage)pb.getRenderedSource(0);
            Object property = src.getProperty("ROI");
            if (property == null ||
                property.equals(java.awt.Image.UndefinedProperty) ||
                !(property instanceof ROI)) {
                return null;
            }
            ROI srcROI = (ROI)property;

            // Determine the effective source bounds.
            Rectangle srcBounds = null;
            PlanarImage dst = op.getRendering();
            if(dst instanceof GeometricOpImage &&
               ((GeometricOpImage)dst).getBorderExtender() == null) {
                GeometricOpImage geomIm = (GeometricOpImage)dst;
                Interpolation interp = geomIm.getInterpolation();
                srcBounds =
View Full Code Here

            bits = 16;
        } else if (dataType == DataBuffer.TYPE_INT) {
            bits = 32;
        }

        PlanarImage src = getSource(0);
        int sMinX = src.getMinX();
        int sMinY = src.getMinY();
        int sWidth = src.getWidth();
        int sHeight = src.getHeight();
        int sMaxX = sMinX + sWidth - 1;
        int sMaxY = sMinY + sHeight - 1;

        // Backwards map starting point of destination rectangle
        int[] pt = new int[2];
View Full Code Here

        Raster[] roi = sourceROI != null ?
            new Raster[numSources] : null;

        // Cobble areas
        for (int i = 0; i < numSources; i++) {
            PlanarImage source = getSourceImage(i);
            Rectangle srcRect = mapDestRect(destRect, i);

            // If srcRect is empty, set the Raster for this source to
            // null; otherwise pass srcRect to getData(). If srcRect
            // is null, getData() will return a Raster containing the
            // data of the entire source image.
            rasterSources[i] = srcRect != null && srcRect.isEmpty() ?
                null : source.getExtendedData(destRect, sourceExtender);

            if(rasterSources[i] != null) {
                if(sourceAlpha != null && sourceAlpha[i] != null) {
                    alpha[i] = sourceAlpha[i].getExtendedData(destRect,
                                                              zeroExtender);
                }

                if(sourceROI != null && sourceROI[i] != null) {
                    roi[i] = roiImage[i].getExtendedData(destRect,
                                                         zeroExtender);
                }
            }
        }

        computeRect(rasterSources, dest, destRect, alpha, roi);

        for (int i = 0; i < numSources; i++) {
            Raster sourceData = rasterSources[i];
            if(sourceData != null) {
                PlanarImage source = getSourceImage(i);

                // Recycle the source tile
                if(source.overlapsMultipleTiles(sourceData.getBounds())) {
                    recycleTile(sourceData);
                }
            }
        }
View Full Code Here

               args,
               mergedHints);

  // If the operation requests immediate rendering, do so.
        if (odesc.isImmediate()) {
            PlanarImage im = null;
            im = op.getRendering();

            if (im == null) {
    // Op could not be rendered, return null.
                return null;
View Full Code Here

               evtSrc instanceof RenderedImage &&
               propName.equals("invalidregion"))) &&
             nodeSources.contains(evtSrc)))) {

            // Save the previous rendering.
            PlanarImage theOldImage = theImage;

            // Initialize the event flag.
            boolean shouldFireEvent = false;

            // Set default invalid region to null (the entire image).
View Full Code Here

        pbScale.add(0F);
        pbScale.add(0F);
        pbScale.add(rotMinX - imMinX);
        pbScale.add(rotMinY - imMinY);
        pbScale.add(interp);
                    PlanarImage intermediateImage =
                        JAI.create("scale", pbScale,
                                   renderHints).getRendering();
                    try {
                        return new PointMapperOpImage(intermediateImage,
                                                      renderHints,
View Full Code Here

        WritableRaster dest = createTile(tileX, tileY);

        /* Clip the raster bound to image bounds. */
        Rectangle destRect = dest.getBounds().intersection(getBounds());

        PlanarImage srcUnder = getSource(0);
        PlanarImage srcOver = getSource(1);

        Rectangle srcUnderBounds = srcUnder.getBounds();
        Rectangle srcOverBounds = srcOver.getBounds();

        /* In case of PointOpImage, mapDestRect(destRect, i) = destRect). */

        Raster[] sources = new Raster[1];
        if (srcOverBounds.contains(destRect)) {
            /* Tile is entirely inside sourceOver. */
            sources[0] = srcOver.getData(destRect);
            computeRect(sources, dest, destRect);

            // Recycle the source tile
            if(srcOver.overlapsMultipleTiles(destRect)) {
                recycleTile(sources[0]);
            }

            return dest;

        } else if (srcUnderBounds.contains(destRect) &&
                   !srcOverBounds.intersects(destRect)) {
            /* Tile is entirely inside sourceUnder. */
            sources[0] = srcUnder.getData(destRect);
            computeRect(sources, dest, destRect);

            // Recycle the source tile
            if(srcUnder.overlapsMultipleTiles(destRect)) {
                recycleTile(sources[0]);
            }

            return dest;

        } else {
            /* Tile is inside both sources. */
            Rectangle isectUnder = destRect.intersection(srcUnderBounds);
            sources[0] = srcUnder.getData(isectUnder);
            computeRect(sources, dest, isectUnder);

            // Recycle the source tile
            if(srcUnder.overlapsMultipleTiles(isectUnder)) {
                recycleTile(sources[0]);
            }

            if (srcOverBounds.intersects(destRect)) {
                Rectangle isectOver = destRect.intersection(srcOverBounds);
                sources[0] = srcOver.getData(isectOver);
                computeRect(sources, dest, isectOver);

                // Recycle the source tile
                if(srcOver.overlapsMultipleTiles(isectOver)) {
                    recycleTile(sources[0]);
                }
            }

            return dest;
View Full Code Here

        // Get the default registry.
        OperationRegistry registry = (renderHints == null) ? null :
      (OperationRegistry)renderHints.get(JAI.KEY_OPERATION_REGISTRY);

        PlanarImage im = new FileStoreImage(RIFRegistry.create
          (registry, "encode", pb, renderHints), stream);

        return im;
    }
View Full Code Here

TOP

Related Classes of com.lightcrafts.mediax.jai.PlanarImage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.