Examples of PDRange


Examples of org.apache.pdfbox.pdmodel.common.PDRange

    }

    @Override
    public float[] getDefaultDecode(int bitsPerComponent)
    {
        PDRange a = getARange();
        PDRange b = getARange();
        return new float[] { 0, 100, a.getMin(), a.getMax(), b.getMin(), b.getMax() };
    }
View Full Code Here

Examples of org.apache.pdfbox.pdmodel.common.PDRange

        COSArray rangeArray = (COSArray) dictionary.getDictionaryObject(COSName.RANGE);
        if (rangeArray == null)
        {
            rangeArray = getDefaultRangeArray();
        }
        return new PDRange(rangeArray, 0);
    }
View Full Code Here

Examples of org.apache.pdfbox.pdmodel.common.PDRange

        COSArray rangeArray = (COSArray) dictionary.getDictionaryObject(COSName.RANGE);
        if (rangeArray == null)
        {
            rangeArray = getDefaultRangeArray();
        }
        return new PDRange(rangeArray, 1);
    }
View Full Code Here

Examples of org.apache.pdfbox.pdmodel.common.PDRange

     *
     * @return The fractional space to allocate.
     */
    public PDRange getFractionalSpaceToAllocate()
    {
        PDRange retval = null;
        COSArray array = (COSArray)fit.getDictionaryObject( COSName.A );
        if( array == null )
        {
            retval = new PDRange();
            retval.setMin( .5f );
            retval.setMax( .5f );
            setFractionalSpaceToAllocate( retval );
        }
        else
        {
            retval = new PDRange( array );
        }
        return retval;
    }
View Full Code Here

Examples of org.apache.pdfbox.pdmodel.common.PDRange

    private ArrayList<ShadedTriangle> getTriangleList(AffineTransform xform, Matrix ctm) throws IOException
    {
        ArrayList<ShadedTriangle> list = new ArrayList<ShadedTriangle>();
        PDShadingType5 latticeTriangleShadingType = (PDShadingType5) shading;
        COSDictionary cosDictionary = latticeTriangleShadingType.getCOSDictionary();
        PDRange rangeX = latticeTriangleShadingType.getDecodeForParameter(0);
        PDRange rangeY = latticeTriangleShadingType.getDecodeForParameter(1);
        int numPerRow = latticeTriangleShadingType.getVerticesPerRow();
        PDRange[] colRange = new PDRange[numberOfColorComponents];
        for (int i = 0; i < numberOfColorComponents; ++i)
        {
            colRange[i] = latticeTriangleShadingType.getDecodeForParameter(2 + i);
View Full Code Here

Examples of org.apache.pdfbox.pdmodel.common.PDRange

    private ArrayList<ShadedTriangle> getTriangleList(AffineTransform xform, Matrix ctm) throws IOException
    {
        PDShadingType4 freeTriangleShadingType = (PDShadingType4) shading;
        COSDictionary cosDictionary = freeTriangleShadingType.getCOSDictionary();
        PDRange rangeX = freeTriangleShadingType.getDecodeForParameter(0);
        PDRange rangeY = freeTriangleShadingType.getDecodeForParameter(1);
        PDRange[] colRange = new PDRange[numberOfColorComponents];
        for (int i = 0; i < numberOfColorComponents; ++i)
        {
            colRange[i] = freeTriangleShadingType.getDecodeForParameter(2 + i);
        }
View Full Code Here

Examples of org.apache.pdfbox.pdmodel.common.PDRange

     * @param paramNum the function parameter number
     * @return the decode parameter range or null if none is set
     */
    public PDRange getDecodeForParameter(int paramNum)
    {
        PDRange retval = null;
        COSArray decodeValues = getDecodeValues();
        if (decodeValues != null && decodeValues.size() >= paramNum * 2 + 1)
        {
            retval = new PDRange(decodeValues, paramNum);
        }
        return retval;
    }
View Full Code Here

Examples of org.apache.pdfbox.pdmodel.common.PDRange

     *
     * @return The encode parameter range or null if none is set.
     */
    public PDRange getEncodeForParameter(int paramNum)
    {
        PDRange retval = null;
        COSArray encodeValues = getEncodeValues();
        if (encodeValues != null && encodeValues.size() >= paramNum * 2 + 1)
        {
            retval = new PDRange(encodeValues, paramNum);
        }
        return retval;
    }
View Full Code Here

Examples of org.apache.pdfbox.pdmodel.common.PDRange

     *
     * @return The decode parameter range or null if none is set.
     */
    public PDRange getDecodeForParameter(int paramNum)
    {
        PDRange retval = null;
        COSArray decodeValues = getDecodeValues();
        if (decodeValues != null && decodeValues.size() >= paramNum * 2 + 1)
        {
            retval = new PDRange(decodeValues, paramNum);
        }
        return retval;
    }
View Full Code Here

Examples of org.apache.pdfbox.pdmodel.common.PDRange

        int[] inputPrev = new int[numberOfInputValues];
        int[] inputNext = new int[numberOfInputValues];

        for (int i = 0; i < numberOfInputValues; i++)
        {
            PDRange domain = getDomainForInput(i);
            PDRange encodeValues = getEncodeForParameter(i);
            input[i] = clipToRange(input[i], domain.getMin(), domain.getMax());
            input[i] = interpolate(input[i], domain.getMin(), domain.getMax(),
                    encodeValues.getMin(), encodeValues.getMax());
            input[i] = clipToRange(input[i], 0, sizeValues[i] - 1);
            inputPrev[i] = (int) Math.floor(input[i]);
            inputNext[i] = (int) Math.ceil(input[i]);
        }

        // old code for N=1 and N=2, don't delete in case one uses this for optimization
//
//        if (numberOfInputValues == 1)
//        {
//            int[] sample1 = getSamples()[calcSampleIndex(new int[]
//            {
//                inputPrev[0]
//            })];
//            int[] sample2 = getSamples()[calcSampleIndex(new int[]
//            {
//                inputNext[0]
//            })];
//            for (int i = 0; i < numberOfOutputValues; ++i)
//            {
//                outputValues[i] = inputPrev[0] == inputNext[0] ? sample1[i] : interpolate(input[0], inputPrev[0], inputNext[0], sample1[i], sample2[i]);
//            }
//            //TODO optimize so that sample is collected only when needed
//        }
//        if (numberOfInputValues == 2)
//        {
//            int[] sample1 = getSamples()[calcSampleIndex(new int[]
//            {
//                inputPrev[0], inputPrev[1]
//            })];
//            int[] sample2 = getSamples()[calcSampleIndex(new int[]
//            {
//                inputPrev[0], inputNext[1]
//            })];
//            int[] sample3 = getSamples()[calcSampleIndex(new int[]
//            {
//                inputNext[0], inputPrev[1]
//            })];
//            int[] sample4 = getSamples()[calcSampleIndex(new int[]
//            {
//                inputNext[0], inputNext[1]
//            })];
//
//            for (int i = 0; i < numberOfOutputValues; ++i)
//            {
//                // bilinear color interpolation, see e.g.
//                // http://harmoniccode.blogspot.de/2011/04/bilinear-color-interpolation.html
//                // interpolate the color at top and bottom edges (x-axis)
//                // then interpolate the color between these two results (y-axis)
//                double lowerVal = inputPrev[0] == inputNext[0] ? sample1[i] : interpolate(input[0], inputPrev[0], inputNext[0], sample1[i], sample3[i]);
//                double upperVal = inputPrev[0] == inputNext[0] ? sample2[i] : interpolate(input[0], inputPrev[0], inputNext[0], sample2[i], sample4[i]);
//                outputValues[i] = (float) (inputPrev[1] == inputNext[1] ? lowerVal : interpolate(input[1], inputPrev[1], inputNext[1], (float) lowerVal, (float) upperVal));
//                //TODO optimize so that sample is collected only when needed
//            }
//        }
//       
        float[] outputValues = new Rinterpol(input, inputPrev, inputNext).rinterpolate();

        for (int i = 0; i < numberOfOutputValues; i++)
        {
            PDRange range = getRangeForOutput(i);
            PDRange decodeValues = getDecodeForParameter(i);
            outputValues[i] = interpolate(outputValues[i], 0, maxSample, decodeValues.getMin(), decodeValues.getMax());
            outputValues[i] = clipToRange(outputValues[i], range.getMin(), range.getMax());
        }

        return outputValues;
    }
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.