}
float ditheringQuality = paintingState.getDitheringQuality();
RenderedImage renderedImage = imageRendered.getRenderedImage();
ImageInfo imageInfo = imageRendered.getInfo();
ImageSize intrinsicSize = imageInfo.getSize();
boolean useFS10 = (maxPixelSize == 1) || BitmapImageUtil.isMonochromeImage(renderedImage);
int functionSet = useFS10 ? 10 : 11;
boolean usePageSegments = useFS10
&& !imageObjectInfo.getResourceInfo().getLevel().isInline();
ImageSize effIntrinsicSize = intrinsicSize;
if (usePageSegments) {
//Resize, optionally resample and convert image
Dimension resampledDim = new Dimension(
(int)Math.ceil(UnitConv.mpt2px(targetSize.getWidth(), resolution)),
(int)Math.ceil(UnitConv.mpt2px(targetSize.getHeight(), resolution)));
imageObjectInfo.setCreatePageSegment(true);
imageObjectInfo.getResourceInfo().setImageDimension(resampledDim);
//Only resample/downsample if image is smaller than its intrinsic size
//to make print file smaller
boolean resample = resampledDim.width < renderedImage.getWidth()
&& resampledDim.height < renderedImage.getHeight();
if (resample) {
if (log.isDebugEnabled()) {
log.debug("Resample from " + intrinsicSize.getDimensionPx()
+ " to " + resampledDim);
}
renderedImage = BitmapImageUtil.convertToMonochrome(renderedImage,
resampledDim, ditheringQuality);
effIntrinsicSize = new ImageSize(
resampledDim.width, resampledDim.height, resolution);
} else if (ditheringQuality >= 0.5f) {
renderedImage = BitmapImageUtil.convertToMonochrome(renderedImage,
intrinsicSize.getDimensionPx(), ditheringQuality);
}
}
imageObjectInfo.setDataHeightRes((int)Math.round(
effIntrinsicSize.getDpiHorizontal() * 10));
imageObjectInfo.setDataWidthRes((int)Math.round(
effIntrinsicSize.getDpiVertical() * 10));
int dataHeight = renderedImage.getHeight();
imageObjectInfo.setDataHeight(dataHeight);
int dataWidth = renderedImage.getWidth();