Browse Source

Fixed regression introduced by rev 1137971:

Bi-level images that are generated as page segments and don't need to be resampled produced garbled output because the size of the image data got set to wrong values.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1138036 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-1_1rc1old
Jeremias Maerki 13 years ago
parent
commit
634a8abadc

+ 10
- 7
src/java/org/apache/fop/render/afp/AFPImageHandlerRenderedImage.java View File

private boolean useFS10; private boolean useFS10;
private int maxPixelSize; private int maxPixelSize;
private boolean usePageSegments; private boolean usePageSegments;
private boolean resample;
private Dimension resampledDim; private Dimension resampledDim;
private ImageSize intrinsicSize; private ImageSize intrinsicSize;
private ImageSize effIntrinsicSize; private ImageSize effIntrinsicSize;
(int)Math.ceil(UnitConv.mpt2px(targetSize.getWidth(), resolution)), (int)Math.ceil(UnitConv.mpt2px(targetSize.getWidth(), resolution)),
(int)Math.ceil(UnitConv.mpt2px(targetSize.getHeight(), resolution))); (int)Math.ceil(UnitConv.mpt2px(targetSize.getHeight(), resolution)));
resourceInfo.setImageDimension(resampledDim); resourceInfo.setImageDimension(resampledDim);
effIntrinsicSize = new ImageSize(
resampledDim.width, resampledDim.height, resolution);
//Only resample/downsample if image is smaller than its intrinsic size
//to make print file smaller
this.resample = resampledDim.width < renderedImage.getWidth()
&& resampledDim.height < renderedImage.getHeight();
if (resample) {
effIntrinsicSize = new ImageSize(
resampledDim.width, resampledDim.height, resolution);
}
} }


//Update image object info //Update image object info
imageObjectInfo.setCreatePageSegment(true); imageObjectInfo.setCreatePageSegment(true);


float ditheringQuality = paintingState.getDitheringQuality(); float ditheringQuality = paintingState.getDitheringQuality();
//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 (this.resample) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("Resample from " + intrinsicSize.getDimensionPx() log.debug("Resample from " + intrinsicSize.getDimensionPx()
+ " to " + resampledDim); + " to " + resampledDim);

Loading…
Cancel
Save