Package org.apache.batik.gvt.filter

Examples of org.apache.batik.gvt.filter.CachableRed


               FilterAsAlphaRable.VALUE_COLORSPACE_ALPHA);

        RenderedImage ri;
        ri = getSource().createRendering(new RenderContext(at, aoi, rh));
       
        CachableRed cr = ConcreteRenderedImageCachableRed.wrap(ri);

        Object val = cr.getProperty(FilterAsAlphaRable.PROPERTY_COLORSPACE);
        if (val == FilterAsAlphaRable.VALUE_COLORSPACE_ALPHA)
            return cr; // It listened to us...

        return new FilterAlphaRed(cr);
    }
View Full Code Here


        AffineTransform at = rc.getTransform();

        // Get the device bounds, we will crop the affine to those bounds.
        Shape devAOI = at.createTransformedShape(aoi);

        CachableRed cr = new AffineRed(getSource(), at, rh);
        cr = new PadRed(cr, devAOI.getBounds(), PadMode.ZERO_PAD, rh);

        return cr;
    }
View Full Code Here

                                  tx, ty);

        final int minX = displacedRed.getMinX();
        final int minY = displacedRed.getMinY();

        CachableRed cr
            = new ConcreteBufferedImageCachableRed(destBI, minX, minY);

        if(!resAt.isIdentity()){
            cr = new AffineRed(cr, resAt, rh);
        }
View Full Code Here

                  FilterAsAlphaRable.VALUE_COLORSPACE_ALPHA);
    }

    public WritableRaster copyData(WritableRaster wr) {
        // Get my source.
        CachableRed srcRed = (CachableRed)getSources().get(0);

        SampleModel sm = srcRed.getSampleModel();
        if (sm.getNumBands() == 1)
            // Already one band of data so we just use it...
            return srcRed.copyData(wr);

       
        Raster srcRas = srcRed.getData(wr.getBounds());
        AbstractRed.copyBand(srcRas, srcRas.getNumBands()-1, wr,
                             wr.getNumBands()-1);
        return wr;
    }
View Full Code Here

        Filter maskSrc = new ConcreteGraphicsNodeRable(getMaskNode());
        PadRable maskPad = new ConcretePadRable(maskSrc, getBounds2D(),
                                                PadMode.ZERO_PAD);
        maskSrc = new FilterAsAlphaRable(maskPad);
        RenderedImage ri = maskSrc.createRendering(rc);
        CachableRed maskCr = ConcreteRenderedImageCachableRed.wrap(ri);

        //
        // Get the masked content
        //
        PadRable maskedPad = new ConcretePadRable(getSource(),
                                                  getBounds2D(),
                                                  PadMode.ZERO_PAD);
        ri = maskedPad.createRendering(rc);
        if (ri == null)
            return null;

        CachableRed cr = ConcreteRenderedImageCachableRed.wrap(ri);

        CachableRed ret = new MultiplyAlphaRed(cr, maskCr);

        // ret = new PadRed(ret, cr.getBounds(), PadMode.ZERO_PAD, rh);

        return ret;
    }
View Full Code Here

        float dX = (getWidth()*scale)-w;
        float dY = (getHeight()*scale)-h;

        RenderedImage ri = createRendering(rc);
        CachableRed cr = ConcreteRenderedImageCachableRed.wrap(ri);
        return new PadRed(cr, new Rectangle((int)(dX/2), (int)(dY/2), w, h),
                          PadMode.ZERO_PAD, null);
    }
View Full Code Here

    }


    public WritableRaster copyData(WritableRaster wr) {
        // Get my source.
        CachableRed src = (CachableRed)getSources().get(0);

        SampleModel sm = src.getSampleModel();
        ColorModel  cm = src.getColorModel();
        if (cm == null) {
            // We don't really know much about this source.

            float [][] matrix = null;
            if (sm.getNumBands() == 2) {
                matrix = new float[2][2];
                matrix[0][0] = 1;
                matrix[1][1] = 1;
            } else {
                matrix = new float[sm.getNumBands()][1];
                matrix[0][0] = 1;
            }

            Raster srcRas = src.getData(wr.getBounds());
            BandCombineOp op = new BandCombineOp(matrix, null);
            op.filter(srcRas, wr);
        } else {
            // REVIEW: Alpha handling may not be correct through here.
            // Since the colorconversion may not be a linear op it
            // is probably required to divide out the alpha before
            // doing the color conversion.
            //
            // This might be especially tricky since there are bugs
            // in the ColorConvert Ops handling of alpha...

            ColorConvertOp op = new ColorConvertOp(null);
            Raster srcRas = src.getData(wr.getBounds());
            Point pt = new Point(srcRas.getMinX(), srcRas.getMinY());

            WritableRaster srcWr = (WritableRaster)srcRas;
            // srcWr = Raster.createWritableRaster(srcRas.getSampleModel(),
            //                                     srcRas.getDataBuffer(),
View Full Code Here

        RenderedImage ri;
        ri = getSource().createRendering(new RenderContext(srcAt, r, rh));
        if (ri == null)
            return null;

        CachableRed cr;
        cr = new ConcreteRenderedImageCachableRed(ri);

        Shape devShape = srcAt.createTransformedShape(aoi.getBounds2D());
        r = devShape.getBounds2D();
        r = new Rectangle2D.Double(r.getX()-radX,
                                   r.getY()-radY,
                                   r.getWidth() +2*radX,
                                   r.getHeight()+2*radY);
        cr = new PadRed(cr, r.getBounds(), PadMode.ZERO_PAD, rh);
       
        // System.out.println("Src: " + cr.getBounds());

        ColorModel cm = ri.getColorModel();

        // OK this is a bit of a cheat. We Pull the DataBuffer out of
        // The read-only raster that getData gives us. And use it to
        // build a WritableRaster.  This avoids a copy of the data.
        Raster rr = cr.getData();
        Point  pt = new Point(0,0);
        WritableRaster wr = Raster.createWritableRaster(rr.getSampleModel(),
                                                        rr.getDataBuffer(),
                                                        pt);
       
        BufferedImage srcBI;
        srcBI = new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
       
        BufferedImage destBI;
        if(op != null){
            destBI = op.filter(srcBI, null);
        }
        else{
            destBI = srcBI;
        }

        final int rrMinX = cr.getMinX();
        final int rrMinY = cr.getMinY();

        cr = new ConcreteBufferedImageCachableRed(destBI, rrMinX, rrMinY);

        if (!resAt.isIdentity())
            cr = new AffineRed(cr, resAt, rh);
View Full Code Here

        if(srcs != null){
            this.srcs.addAll(srcs);
        }

        if (srcs.size() != 0) {
            CachableRed src = (CachableRed)srcs.get(0);
            if (bounds == null) bounds = src.getBounds();
            if (cm     == null) cm     = src.getColorModel();
            if (sm     == null) sm     = src.getSampleModel();
        }

        this.bounds       = bounds;
        this.tileGridXOff = tileGridXOff;
        this.tileGridYOff = tileGridYOff;
View Full Code Here

TOP

Related Classes of org.apache.batik.gvt.filter.CachableRed

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.