From 53b43e04976dc884f328b775b53a8ffe16cfd747 Mon Sep 17 00:00:00 2001 From: John Cupitt Date: Mon, 29 Apr 2019 08:43:39 +0100 Subject: [PATCH] fix setting of iterations in magicksave ImageMagick uses 0 to mean unset, so we must always add 1. See coders/gif.c. See https://github.com/libvips/libvips/issues/1302 --- libvips/foreign/magicksave.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libvips/foreign/magicksave.c b/libvips/foreign/magicksave.c index e468a669..e8afae64 100644 --- a/libvips/foreign/magicksave.c +++ b/libvips/foreign/magicksave.c @@ -143,9 +143,12 @@ vips_foreign_save_magick_next_image( VipsForeignSaveMagick *magick ) !vips_image_get_int( im, "gif-delay", &number ) ) image->delay = (size_t) number; + /* ImageMagick uses 0 to mean unset, so we must always add 1. See + * coders/gif.c. + */ if( vips_image_get_typeof( im, "gif-loop" ) && !vips_image_get_int( im, "gif-loop", &number ) ) - image->iterations = (size_t) number; + image->iterations = (size_t) (number + 1); if( vips_image_get_typeof( im, "gif-comment" ) && !vips_image_get_string( im, "gif-comment", &str ) )