Skip to content
This repository was archived by the owner on Feb 1, 2023. It is now read-only.

Commit 99371f9

Browse files
Release Managervbraun
authored andcommitted
Trac #18176: Show animation
Bandaid until we can implement a proper fix at #17783 URL: http://trac.sagemath.org/18176 Reported by: vbraun Ticket author(s): Martin von Gagern Reviewer(s): Volker Braun
2 parents 9406182 + 9a48ae0 commit 99371f9

File tree

1 file changed

+31
-9
lines changed

1 file changed

+31
-9
lines changed

src/sage/plot/animate.py

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -491,12 +491,12 @@ def graphics_array(self, ncols=3):
491491
Graphics Array of size 2 x 3
492492
sage: g.show(figsize=[6,3]) # optional
493493
494-
Specify different arrangement of array and save with different file name::
494+
Specify different arrangement of array and save it with a given file name::
495495
496496
sage: g = a.graphics_array(ncols=2); print g
497497
Graphics Array of size 2 x 2
498498
sage: f = tmp_filename(ext='.png')
499-
sage: g.show(f) # optional
499+
sage: g.save(f) # optional
500500
501501
Frames can be specified as a generator too; it is internally converted to a list::
502502
@@ -555,6 +555,8 @@ def gif(self, delay=20, savefile=None, iterations=0, show_path=False,
555555
sage: td = tmp_dir()
556556
sage: a.gif() # not tested
557557
sage: a.gif(savefile=td + 'my_animation.gif', delay=35, iterations=3) # optional -- ImageMagick
558+
sage: with open(td + 'my_animation.gif', 'rb') as f: print '\x21\xf9\x04\x08\x23\x00' in f.read() # optional -- ImageMagick
559+
True
558560
sage: a.gif(savefile=td + 'my_animation.gif', show_path=True) # optional -- ImageMagick
559561
Animation saved to .../my_animation.gif.
560562
sage: a.gif(savefile=td + 'my_animation_2.gif', show_path=True, use_ffmpeg=True) # optional -- ffmpeg
@@ -795,6 +797,8 @@ def ffmpeg(self, savefile=None, show_path=False, output_format=None,
795797
TESTS::
796798
797799
sage: a.ffmpeg(output_format='gif',delay=30,iterations=5) # optional -- ffmpeg
800+
doctest:...: DeprecationWarning: use tmp_filename instead
801+
See http://trac.sagemath.org/17234 for details.
798802
"""
799803
if not self._have_ffmpeg():
800804
msg = """Error: ffmpeg does not appear to be installed. Saving an animation to
@@ -924,8 +928,8 @@ def apng(self, savefile=None, show_path=False, delay=20, iterations=0):
924928
if show_path:
925929
print "Animation saved to file %s." % savefile
926930

927-
def save(self, filename=None, show_path=False, use_ffmpeg=False):
928-
"""
931+
def save(self, filename=None, show_path=False, use_ffmpeg=False, **kwds):
932+
r"""
929933
Save this animation.
930934
931935
INPUT:
@@ -964,6 +968,27 @@ def save(self, filename=None, show_path=False, use_ffmpeg=False):
964968
sage: a.save(td + 'wave0.sobj')
965969
sage: a.save(td + 'wave1.sobj', show_path=True)
966970
Animation saved to file .../wave1.sobj.
971+
972+
TESTS:
973+
974+
Ensure that we can pass delay and iteration count to the saved
975+
GIF image (see :trac:`18176`)::
976+
977+
sage: a.save(td + 'wave.gif') # optional -- ImageMagick
978+
sage: with open(td + 'wave.gif', 'rb') as f: print '!\xf9\x04\x08\x14\x00' in f.read() # optional -- ImageMagick
979+
True
980+
sage: with open(td + 'wave.gif', 'rb') as f: print '!\xff\x0bNETSCAPE2.0\x03\x01\x00\x00\x00' in f.read() # optional -- ImageMagick
981+
True
982+
sage: a.save(td + 'wave.gif', delay=35) # optional -- ImageMagick
983+
sage: with open(td + 'wave.gif', 'rb') as f: print '!\xf9\x04\x08\x14\x00' in f.read() # optional -- ImageMagick
984+
False
985+
sage: with open(td + 'wave.gif', 'rb') as f: print '!\xf9\x04\x08\x23\x00' in f.read() # optional -- ImageMagick
986+
True
987+
sage: a.save(td + 'wave.gif', iterations=3) # optional -- ImageMagick
988+
sage: with open(td + 'wave.gif', 'rb') as f: print '!\xff\x0bNETSCAPE2.0\x03\x01\x00\x00\x00' in f.read() # optional -- ImageMagick
989+
False
990+
sage: with open(td + 'wave.gif', 'rb') as f: print '!\xff\x0bNETSCAPE2.0\x03\x01\x03\x00\x00' in f.read() # optional -- ImageMagick
991+
True
967992
"""
968993
if filename is None:
969994
suffix = '.gif'
@@ -974,16 +999,13 @@ def save(self, filename=None, show_path=False, use_ffmpeg=False):
974999

9751000
if filename is None or suffix == '.gif':
9761001
self.gif(savefile=filename, show_path=show_path,
977-
use_ffmpeg=use_ffmpeg)
978-
return
1002+
use_ffmpeg=use_ffmpeg, **kwds)
9791003
elif suffix == '.sobj':
9801004
SageObject.save(self, filename)
9811005
if show_path:
9821006
print "Animation saved to file %s." % filename
983-
return
9841007
else:
985-
self.ffmpeg(savefile=filename, show_path=show_path)
986-
return
1008+
self.ffmpeg(savefile=filename, show_path=show_path, **kwds)
9871009

9881010

9891011
class APngAssembler(object):

0 commit comments

Comments
 (0)