Examples of ParameterBlock


Examples of java.awt.image.renderable.ParameterBlock

            ColorScience.YST yst = new ColorScience.YST();

            double[][] rgb2yst = yst.fromRGB(back.getSampleModel().getDataType());
            double[][] yst2rgb = yst.toRGB(back.getSampleModel().getDataType());

            ParameterBlock pb = new ParameterBlock();
            pb.addSource( back );
            pb.add( rgb2yst );
            RenderedOp ystImage = JAI.create("BandCombine", pb, JAIContext.noCacheHint);

            pb = new ParameterBlock();
            pb.addSource(ystImage);
            pb.add(new int[]{0});
            RenderedOp y = JAI.create("bandselect", pb, JAIContext.noCacheHint);

            pb = new ParameterBlock();
            pb.addSource(ystImage);
            pb.add(new int[]{1, 2});
            // NOTE: we cache this because the median filter is an area op that gets its input multiple times
            RenderedOp cc = JAI.create("bandselect", pb, null);

            RenderingHints mfHints = new RenderingHints(JAI.KEY_BORDER_EXTENDER, BorderExtender.createInstance(BorderExtender.BORDER_COPY));
            mfHints.add(JAIContext.noCacheHint);
            pb = new ParameterBlock();
            pb.addSource(cc);
            pb.add(MedianFilterDescriptor.MEDIAN_MASK_SQUARE); // X Shape seems to give the least artifacts
            pb.add(new Integer(Math.max(2 * (int) (denoiseLevel * scale) + 1, 3)));
            denoiser = JAI.create("MedianFilter", pb, mfHints);

            RenderingHints layoutHints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, Functions.getImageLayout(ystImage));
            pb = new ParameterBlock();
            pb.addSource(y);
            pb.addSource(denoiser);
            layoutHints.add(JAIContext.noCacheHint);
            RenderedOp denoisedyst = JAI.create("BandMerge", pb, layoutHints);

            pb = new ParameterBlock();
            pb.addSource( denoisedyst );
            pb.add( yst2rgb );
            return JAI.create("BandCombine", pb, JAIContext.noCacheHint);
        }
View Full Code Here

Examples of java.awt.image.renderable.ParameterBlock

                ColorScience.LinearTransform transform = new ColorScience.YST();

                double[][] rgb2llab = transform.fromRGB(back.getSampleModel().getDataType());
                double[][] llab2rgb = transform.toRGB(back.getSampleModel().getDataType());

                ParameterBlock pb = new ParameterBlock();
                pb.addSource( front );
                pb.add( rgb2llab );
                PlanarImage ystImage = JAI.create("BandCombine", pb, null);

                pb = new ParameterBlock();
                pb.addSource(ystImage);
                pb.add(color_noise * scale);
                pb.add(0.02f + 0.001f * color_noise);
                ystImage = JAI.create("BilateralFilter", pb, mfHints);

                pb = new ParameterBlock();
                pb.addSource( ystImage );
                pb.add( llab2rgb );
                front = JAI.create("BandCombine", pb, null);
                front.setProperty(JAIContext.PERSISTENT_CACHE_TAG, Boolean.TRUE);
            }

            return front;
View Full Code Here

Examples of java.awt.image.renderable.ParameterBlock

            cachedImage = null;
        }

        private RenderedOp createBlender(PlanarImage front) {
            // Overlay result on the original image
            ParameterBlock pb = new ParameterBlock();
            pb.addSource(front);
            pb.addSource(back);
            pb.add(blendingMode);
            pb.add(new Double(invertedRegion ? -opacity : opacity));
            pb.add(mask);
            pb.add(colorSelectionMask);

            // we don't know what front might generate, specify the output format to be the same as the input
            RenderingHints formatHints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, Functions.getImageLayout(back));
            RenderedOp blender = JAI.create("Blend", pb, formatHints);
            // blender.setProperty(JAIContext.PERSISTENT_CACHE_TAG, Boolean.TRUE);
View Full Code Here

Examples of java.awt.image.renderable.ParameterBlock

                                || !rendering.getInputTransform().equals(lastTransform)
                                || (blender != null && blender.getParameters().get(3) != colorSelectionMask))) {

                            PlanarImage labImage = Functions.toColorSpace(back, new LCMS_ColorSpace(new LCMS.LABProfile()),
                                                              LCMSColorConvertDescriptor.RELATIVE_COLORIMETRIC, null);
                            ParameterBlock pb = new ParameterBlock();
                            pb.addSource(labImage);
                            pb.add(new int[]{1, 2});
                            RenderedOp abImage = JAI.create("bandselect", pb, null);

                            pb = new ParameterBlock();
                            pb.addSource(back);
                            pb.add(new double[][]{{ColorScience.Wr, ColorScience.Wg, ColorScience.Wb, 0}});
                            PlanarImage monochrome = JAI.create("BandCombine", pb, null);

                            RenderingHints layoutHints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, Functions.getImageLayout(labImage));
                            // layoutHints.add(JAIContext.noCacheHint);
                            pb = new ParameterBlock();
                            pb.addSource(monochrome);
                            pb.addSource(abImage);
                            PlanarImage maskImage = JAI.create("BandMerge", pb, layoutHints);

                            colorSelectionMask = new RGBColorSelectionMaskOpImage(maskImage, getColorSelection(), null);

                            ParameterBlock maskPB;

//                            KernelJAI morph = new KernelJAI(3, 3, new float[]{1, 1, 1, 1, 1, 1, 1, 1, 1});
//
//                            maskPB = new ParameterBlock();
//                            maskPB.addSource(colorSelectionMask);
//                            maskPB.add(morph);
//                            colorSelectionMask = JAI.create("Erode", maskPB, null);
//
//                            maskPB = new ParameterBlock();
//                            maskPB.addSource(colorSelectionMask);
//                            maskPB.add(morph);
//                            colorSelectionMask = JAI.create("Dilate", maskPB, null);

                            RenderingHints extenderHints = new RenderingHints(JAI.KEY_BORDER_EXTENDER,
                                                                              BorderExtender.createInstance(BorderExtender.BORDER_COPY));
                            KernelJAI kernel = Functions.getGaussKernel(0.5 * scale);
                            maskPB = new ParameterBlock();
                            maskPB.addSource(colorSelectionMask);
                            maskPB.add(kernel);
                            colorSelectionMask = JAI.create("Convolve", maskPB, extenderHints);

                            lastColorSelection = colorSelection;
                        } else if (colorSelection == null || colorSelection.isAllSelected())
                            colorSelectionMask = null;
View Full Code Here

Examples of java.awt.image.renderable.ParameterBlock

                            0, 0, JAIContext.TILE_WIDTH, JAIContext.TILE_HEIGHT,
                            tiffImage.getSampleModel(),
                            tiffImage.getColorModel()
                        )
                    );
                    final ParameterBlock pb = new ParameterBlock();
                    pb.addSource(tiffImage);
                    pb.add(tiffImage.getSampleModel().getDataType());
                    image = JAI.create("Format", pb, formatHints);
                    image.setProperty(JAIContext.PERSISTENT_CACHE_TAG, Boolean.TRUE);
                } else
                    image = tiffImage;
            }
View Full Code Here

Examples of java.awt.image.renderable.ParameterBlock

        Rectangle bounds = new Rectangle(minX, minY, width, height);

        visibleRect = bounds.intersection(visibleRect);

        if (bounds.contains(visibleRect)) {
            ParameterBlock pb = new ParameterBlock();
            pb.addSource(image);
            pb.add((float) visibleRect.x);
            pb.add((float) visibleRect.y);
            pb.add((float) visibleRect.width);
            pb.add((float) visibleRect.height);
            image = JAI.create("Crop", pb, JAIContext.noCacheHint);
        }
        Dimension previewSize = getSize();

        if ((visibleRect.width > previewSize.width) ||
            (visibleRect.height > previewSize.height)
        ) {
            float scale = Math.min(
                previewSize.width / (float) visibleRect.width,
                previewSize.height / (float) visibleRect.height);

            image = ConvolveDescriptor.create(
                image, Functions.getGaussKernel(.25 / scale), null
            );
            ParameterBlock pb = new ParameterBlock();
            pb.addSource(image);
            pb.add(scale);
            pb.add(scale);
            image = JAI.create("Scale", pb, JAIContext.noCacheHint);
        }
        image =
            Functions.toColorSpace(image, JAIContext.systemColorSpace, null);
View Full Code Here

Examples of java.awt.image.renderable.ParameterBlock

        int ko = kernel.getXOrigin();
        float kdata[] = kernel.getHorizontalKernelData();
        float qsFilterArray[] = new float[kdata.length - ko];
        System.arraycopy(kdata, ko, qsFilterArray, 0, qsFilterArray.length);

        ParameterBlock params = new ParameterBlock();
        params.addSource(src);
        params.add(ratio);
        params.add(ratio);
        params.add(qsFilterArray);
        params.add(Interpolation.getInstance(Interpolation.INTERP_NEAREST));
        return JAI.create("FilteredSubsample", params,
                          new RenderingHints(JAI.KEY_BORDER_EXTENDER,
                                             BorderExtender.createInstance(BorderExtender.BORDER_COPY)));
    }
View Full Code Here

Examples of java.awt.image.renderable.ParameterBlock

            }

            if (!transform.isIdentity()) {
                RenderingHints extenderHints = new RenderingHints(JAI.KEY_BORDER_EXTENDER,
                                                                  BorderExtender.createInstance(BorderExtender.BORDER_COPY));
                ParameterBlock params = new ParameterBlock();
                params.addSource(image);
                params.add(transform);
                params.add(Interpolation.getInstance(cheapScale ? Interpolation.INTERP_BILINEAR : Interpolation.INTERP_BICUBIC));
                // params.add(Interpolation.getInstance(Interpolation.INTERP_BILINEAR));
                xformedSourceImage = JAI.create("Affine", params, extenderHints);
            } else
                xformedSourceImage = image;
        }
View Full Code Here

Examples of java.awt.image.renderable.ParameterBlock

        ImageOrientation orientation = metadata.getOrientation();
        if (orientation != null) {
            transposeAngle = orientation.getCorrection();
            if (transposeAngle != null) {
                ParameterBlock pb = new ParameterBlock();
                pb.addSource(sourceImage);
                pb.add(transposeAngle);
                RenderedOp transposed = JAI.create("Transpose", pb, null);
                transposed.setProperty(JAIContext.PERSISTENT_CACHE_TAG, Boolean.TRUE);
                // sourceImage = transposed;

                CachedImage cache = new CachedImage(new ImageLayout(transposed), JAIContext.fileCache);
View Full Code Here

Examples of java.awt.image.renderable.ParameterBlock

            AffineTransform xform = AffineTransform.getScaleInstance(scaleX, scaleY);

            RenderingHints formatHints = new RenderingHints(JAI.KEY_BORDER_EXTENDER, BorderExtender.createInstance(BorderExtender.BORDER_COPY));

            Interpolation interp = Interpolation.getInstance(Interpolation.INTERP_NEAREST);
            ParameterBlock params = new ParameterBlock();
            params.addSource(image);
            params.add(xform);
            params.add(interp);
            // NOTE: we cache this for the screen
            return JAI.create("Affine", params, formatHints);
        }
        return image;
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.