@@ -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,7 +928,7 @@ 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 ):
931+ def save (self , filename = None , show_path = False , use_ffmpeg = False , ** kwds ):
928932 """
929933 Save this animation.
930934
@@ -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 \x0b NETSCAPE2.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 \x0b NETSCAPE2.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 \x0b NETSCAPE2.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
9891011class APngAssembler (object ):
0 commit comments