float resample(OutputProfiler profiler, PDFImage image, Map<String,Object> properties)
Optionally causes an image embedded in the PDF to be resampled or recompressed. Returning a value other than 0 from this method will cause the image to be rebuilt; a value of less than 1 will downsample the image but that scaling factor, and the Map of properties may be modified to change the way the image is compressed.
The supplied map will have at least the following properties:
compression The compression algorithm; normally one of flate, lzw, dct, ccitfax, jbig2 or jpx occurrance The number of times this image occurs in the PDF minResolution The lowest resolution the image appears at. This is normally the one used to make resampling decisions maxResolution The highest resolution the image appears at. compressionRatio The compression ratio of the image inline Optional, but if this property exists the image is inline
The Map may be modified to change the way the image is compressed; specifically the "compression" property may be changed to one of "flate", "dct", "jpx", "ccittfax" ("jbig2" will hopefully be added at some point), and "compressionRatio" may be set - this will be a fairly accurate setting for "jpx", an estimate for "dct", and unused for other types of compression. A valud of "1" for "jpx" will losslessly recompress the image.
profiler- the OutputProfiler this action is being run on
image- the image being considered
properties- a list of properties which describe how the image is stored. This map can be altered to control how the image is recompressed
- the scaling factor to apply to the image, or 0 for no action.