Merge pull request #398 from vaibsharma/vaibsharma/feature/speed_for_png_buffer

allow effort param for png encoding when palette is true
master
Tom 4 years ago committed by GitHub
commit 25c7e9b904
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -226,7 +226,9 @@ type Options struct {
OutputICC string
InputICC string
Palette bool
// Speed defines the AVIF encoders CPU effort. Valid values are 0-8.
// Speed defines the AVIF encoders CPU effort. Valid values are:
// 0-8 for AVIF encoding.
// 0-9 for PNG encoding.
Speed int
// private fields

@ -171,6 +171,10 @@ func applyDefaults(o Options, imageType ImageType) Options {
if o.Interpretation == 0 {
o.Interpretation = InterpretationSRGB
}
if o.Palette {
// Default value of effort in libvips is 7.
o.Speed = 3
}
return o
}

@ -517,7 +517,7 @@ func vipsSave(image *C.VipsImage, o vipsSaveOptions) ([]byte, error) {
case WEBP:
saveErr = C.vips_webpsave_bridge(tmpImage, &ptr, &length, strip, quality, lossless)
case PNG:
saveErr = C.vips_pngsave_bridge(tmpImage, &ptr, &length, strip, C.int(o.Compression), quality, interlace, palette)
saveErr = C.vips_pngsave_bridge(tmpImage, &ptr, &length, strip, C.int(o.Compression), quality, interlace, palette, speed)
case TIFF:
saveErr = C.vips_tiffsave_bridge(tmpImage, &ptr, &length)
case HEIF:

@ -330,14 +330,17 @@ vips_jpegsave_bridge(VipsImage *in, void **buf, size_t *len, int strip, int qual
}
int
vips_pngsave_bridge(VipsImage *in, void **buf, size_t *len, int strip, int compression, int quality, int interlace, int palette) {
vips_pngsave_bridge(VipsImage *in, void **buf, size_t *len, int strip, int compression, int quality, int interlace, int palette, int speed) {
#if (VIPS_MAJOR_VERSION >= 8 && VIPS_MINOR_VERSION >= 7)
int effort = 10 - speed;
return vips_pngsave_buffer(in, buf, len,
"strip", INT_TO_GBOOLEAN(strip),
"compression", compression,
"interlace", INT_TO_GBOOLEAN(interlace),
"filter", VIPS_FOREIGN_PNG_FILTER_ALL,
"palette", INT_TO_GBOOLEAN(palette),
"Q", quality,
"effort", effort,
NULL
);
#else

Loading…
Cancel
Save