From adc842d5045c6908e8d905a1172b08e637cc2219 Mon Sep 17 00:00:00 2001 From: Eric Relson Date: Tue, 26 Nov 2019 06:58:30 -0800 Subject: [PATCH] Add ImageMagick[File]Writer compression arg --- lib/matplotlib/animation.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/animation.py b/lib/matplotlib/animation.py index b32a4f9fc249..272b82a81be0 100644 --- a/lib/matplotlib/animation.py +++ b/lib/matplotlib/animation.py @@ -693,7 +693,7 @@ def delay(self): @property def output_args(self): - return [*self.extra_args, self.outfile] + return [*self.compress, *self.extra_args, self.outfile] @classmethod def bin_path(cls): @@ -721,6 +721,17 @@ class ImageMagickWriter(ImageMagickBase, MovieWriter): in a single pass. ''' + def __init__(self, compress=False, *args, **kwargs): + ''' + Parameters + ---------- + compress : bool, optional + Resulting gif will be compressed. Equivalent of passing + '-layers Optimize' to ImageMagick. + ''' + ImageMagickWriter.__init__(self, *args, **kwargs) + self.compress = ['-layers', 'Optimize'] if args.compress else [] + def _args(self): return ([self.bin_path(), '-size', '%ix%i' % self.frame_size, '-depth', '8', @@ -742,6 +753,17 @@ class ImageMagickFileWriter(ImageMagickBase, FileMovieWriter): supported_formats = ['png', 'jpeg', 'ppm', 'tiff', 'sgi', 'bmp', 'pbm', 'raw', 'rgba'] + def __init__(self, compress=False, *args, **kwargs): + ''' + Parameters + ---------- + compress : bool, optional + Resulting gif will be compressed. Equivalent of passing + '-layers Optimize' to ImageMagick. + ''' + ImageMagickWriter.__init__(self, *args, **kwargs) + self.compress = ['-layers', 'Optimize'] if args.compress else [] + def _args(self): return ([self.bin_path(), '-delay', str(self.delay), '-loop', '0', '%s*.%s' % (self.temp_prefix, self.frame_format)]