in src/main/java/org/apache/pdfbox/jbig2/JBIG2Page.java [154:200]
private void createNormalPage(PageInformation pageInformation)
throws IOException, IntegerMaxValueException, InvalidHeaderValueException
{
pageBitmap = new Bitmap(pageInformation.getWidth(), pageInformation.getHeight());
// Page 79, 3)
// If default pixel value is not 0, byte will be filled with 0xff
if (pageInformation.getDefaultPixelValue() != 0)
{
pageBitmap.fillBitmap((byte) 0xff);
}
for (SegmentHeader s : segments.values())
{
// Page 79, 5)
switch (s.getSegmentType())
{
case 6: // Immediate text region
case 7: // Immediate lossless text region
case 22: // Immediate halftone region
case 23: // Immediate lossless halftone region
case 38: // Immediate generic region
case 39: // Immediate lossless generic region
case 42: // Immediate generic refinement region
case 43: // Immediate lossless generic refinement region
final Region r = (Region) s.getSegmentData();
final Bitmap regionBitmap = r.getRegionBitmap();
if (fitsPage(pageInformation, regionBitmap))
{
pageBitmap = regionBitmap;
}
else
{
final RegionSegmentInformation regionInfo = r.getRegionInfo();
final CombinationOperator op = getCombinationOperator(pageInformation,
regionInfo.getCombinationOperator());
Bitmaps.blit(regionBitmap, pageBitmap, regionInfo.getXLocation(),
regionInfo.getYLocation(), op);
}
break;
}
}
}