diff --git a/vips/foreign.c b/vips/foreign.c index 306ea914..9ae575e4 100644 --- a/vips/foreign.c +++ b/vips/foreign.c @@ -319,7 +319,8 @@ int set_tiffsave_options(VipsOperation *operation, SaveParams *params) { // https://libvips.github.io/libvips/API/current/VipsForeignSave.html#vips-magicksave-buffer int set_magicksave_options(VipsOperation *operation, SaveParams *params) { - int ret = vips_object_set(VIPS_OBJECT(operation), "format", "GIF", NULL); + int ret = vips_object_set(VIPS_OBJECT(operation), "format", "GIF", "bitdepth", params->gifBitdepth, NULL); + if (!ret && params->quality) { ret = vips_object_set(VIPS_OBJECT(operation), "quality", params->quality, NULL); @@ -331,7 +332,7 @@ int set_magicksave_options(VipsOperation *operation, SaveParams *params) { int set_gifsave_options(VipsOperation *operation, SaveParams *params) { int ret = 0; // See for argument values: https://www.libvips.org/API/current/VipsForeignSave.html#vips-gifsave - if (params->gifDither > 0.0 && params->gifDither <= 1.0) { + if (params->gifDither > 1 && params->gifDither <= 10) { ret = vips_object_set(VIPS_OBJECT(operation), "dither", params->gifDither, NULL); } if (params->gifEffort >= 1 && params->gifEffort <= 10) { diff --git a/vips/image.go b/vips/image.go index 8f7b449e..c2493340 100644 --- a/vips/image.go +++ b/vips/image.go @@ -314,12 +314,14 @@ func NewTiffExportParams() *TiffExportParams { } } +// GifExportParams are options when exporting a GIF to file or buffer +// Please note that if vips version is above 8.12, then `vips_gifsave_buffer` is used, and only `Dither`, `Effort`, `Bitdepth` is used. +// If vips version is below 8.12, then `vips_magicksave_buffer` is used, and only `Bitdepth`, `Quality` is used. type GifExportParams struct { - StripMetadata bool - Quality int - Dither float64 - Effort int - Bitdepth int + Quality int + Dither float64 + Effort int + Bitdepth int } // NewGifExportParams creates default values for an export of a GIF image.