This allows to choose from several predefined quantization tables when
libvips is compiled against mozjpeg 3.0+.
Tuning the quantization table helps to improve file size in the higher
quality range and avoid artefacts in the lower range.
* Add configure check for libwebp >= 0.1.3
* Add custom memory writer using GNOME memory allocation
* Add various ABI checks and warnings for unsupported features:
** smart_subsample and near_lossless require 0.5.0
** lossless requires at least 0.1.99
This allows to control the fidelity of the alpha channel by allowing
webp to reduce the number of palette entries from 256 at alpha_q=100
to 2 at alpha_q=0. This is most useful with cutout pictures where
something like alpha_q=30 or around 8 levels is usually sufficient
for smooth outlines.
For some reason webp->Q was intiailized to 80 even though the Q option
and libwebp use 75 by default. This was never used, so it's just to
avoid confusion about what default is used.
The near_lossless option allows to enable preprocessing for the lossless
mode. This is a boolean instead of an int, because the amount of
preprocessing is controlled using the Q factor parameter which is
otherwise unused in lossless mode. This allows to re-use the quality
setting in existing tools.
This enables a high quality RGB to YUV converter in libwebp which
greatly improves the quality of fine details by reducing color bleeding
caused by the 4:2:0 chroma subsampling. This is slower and causes
slightly larger files. See WebPPictureSmartARGBToYUVA in libwebp.
GM is still using the old page interface of subimage/subrange, IM has
deprecated that in favour of scene/number_scenes
we were accidentally just supporting the new IM system ... this change
adds support for GM as well, plus a configure test to pick one
see https://github.com/jcupitt/libvips/issues/423
jpeg write is more careful about removing exif tags that have been
removed from the image metadata
it failed previously if there were multiple Orientation tags