private final Bitmap decodeIb()

in src/main/java/org/apache/pdfbox/jbig2/segments/TextRegion.java [637:688]


    private final Bitmap decodeIb(long r, long id)
            throws IOException, InvalidHeaderValueException, IntegerMaxValueException
    {
        Bitmap ib;

        if (r == 0)
        {
            ib = symbols.get((int) id);
        }
        else
        {
            /* 1) - 4) */
            final long rdw = decodeRdw();
            final long rdh = decodeRdh();
            final long rdx = decodeRdx();
            final long rdy = decodeRdy();

            /* 5) */
            /* long symInRefSize = 0; */
            if (isHuffmanEncoded)
            {
                /* symInRefSize = */decodeSymInRefSize();
                subInputStream.skipBits();
            }

            /* 6) */
            final Bitmap ibo = symbols.get((int) id);
            final int wo = ibo.getWidth();
            final int ho = ibo.getHeight();

            final int genericRegionReferenceDX = (int) ((rdw >> 1) + rdx);
            final int genericRegionReferenceDY = (int) ((rdh >> 1) + rdy);

            if (genericRefinementRegion == null)
            {
                genericRefinementRegion = new GenericRefinementRegion(subInputStream);
            }

            genericRefinementRegion.setParameters(cx, arithmeticDecoder, sbrTemplate,
                    (int) (wo + rdw), (int) (ho + rdh), ibo, genericRegionReferenceDX,
                    genericRegionReferenceDY, false, sbrATX, sbrATY);

            ib = genericRefinementRegion.getRegionBitmap();

            /* 7 */
            if (isHuffmanEncoded)
            {
                subInputStream.skipBits();
            }
        }
        return ib;
    }