public static BufferedImage asBufferedImage()

in src/main/java/org/apache/pdfbox/jbig2/image/Bitmaps.java [254:301]


    public static BufferedImage asBufferedImage(Bitmap bitmap, ImageReadParam param,
            FilterType filterType)
    {
        if (bitmap == null)
            throw new IllegalArgumentException("bitmap must not be null");

        if (param == null)
            throw new IllegalArgumentException("param must not be null");

        final WritableRaster raster = asRaster(bitmap, param, filterType);

        final Dimension sourceRenderSize = param.getSourceRenderSize();

        final double scaleX;
        final double scaleY;
        if (sourceRenderSize != null)
        {
            scaleX = sourceRenderSize.getWidth() / bitmap.getWidth();
            scaleY = sourceRenderSize.getHeight() / bitmap.getHeight();
        }
        else
        {
            scaleX = scaleY = 1d;
        }

        ColorModel cm = null;
        final boolean isScaled = scaleX != 1 || scaleY != 1;
        if (isScaled)
        {
            final int size = 256;
            final int divisor = size - 1;

            final byte[] gray = new byte[size];
            for (int i = size - 1, s = 0; i >= 0; i--, s++)
            {
                gray[i] = (byte) (255 - s * 255 / divisor);
            }
            cm = new IndexColorModel(8, size, gray, gray, gray);
        }
        else
        {
            cm = new IndexColorModel(1, 2, //
                    new byte[] { 0x00, (byte) 0xff }, new byte[] { 0x00, (byte) 0xff },
                    new byte[] { 0x00, (byte) 0xff });
        }

        return new BufferedImage(cm, raster, false, null);
    }