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);
}