#16571: APNG (Animated PNG) for animations
-------------------------------------+-------------------------------------
       Reporter:  gagern             |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.3
      Component:  graphics           |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Martin von Gagern  |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/gagern/ticket/16571              |  f4a242733b301b813f316d8661485b77ad520ee7
   Dependencies:  #16570, #16645     |     Stopgaps:
-------------------------------------+-------------------------------------
Changes (by gagern):

 * status:  needs_work => needs_review
 * dependencies:  #16533, #16570 => #16570, #16645


Old description:

> Currently the creation of animations depends on external tools: either
> [http://www.imagemagick.org ImageMagick] or [http://www.ffmpeg.org
> FFmpeg] must be available. Either of these can be used to assemble a
> sequence of PNG frames into a GIF animation. However, GIF is a very
> limited format, and the conversion (I guess mostly the color reduction)
> takes time and costs quality.
>
> A more modern alternative would be
> [https://wiki.mozilla.org/APNG_Specification APNG]. It's an extension of
> the PNG standard. One drawback is that only
> [http://caniuse.com/#feat=apng some browsers support it]. The others
> would show the first frame of the animation as still image instead. (We
> could later extend the code so one can specify any image of equal size to
> be used as fallback.)
>
> Assembling multiple PNG files into a single animation is fairly simple.
> In fact so simple that it can be accomplished without using any external
> libraries at all. I wrote such an implementation while working on #16533
> and would like to offer it here for inclusion.
>
> The branch I'm going to append uses commits from #16533 and #16570, so if
> those get merged before, you will have less to review here.

New description:

 Currently the creation of animations depends on external tools: either
 [http://www.imagemagick.org ImageMagick] or [http://www.ffmpeg.org FFmpeg]
 must be available. Either of these can be used to assemble a sequence of
 PNG frames into a GIF animation. However, GIF is a very limited format,
 and the conversion (I guess mostly the color reduction) takes time and
 costs quality.

 A more modern alternative would be
 [https://wiki.mozilla.org/APNG_Specification APNG]. It's an extension of
 the PNG standard. One drawback is that only [http://caniuse.com/#feat=apng
 some browsers support it]. The others would show the first frame of the
 animation as still image instead. (We could later extend the code so one
 can specify any image of equal size to be used as fallback.)

 Assembling multiple PNG files into a single animation is fairly simple. In
 fact so simple that it can be accomplished without using any external
 libraries at all. I wrote such an implementation while working on #16533
 and would like to offer it here for inclusion.

 The branch I'm going to append uses commits from #16570 and #16645, so if
 those get merged before, you will have less to review here.

--

Comment:

 Rebased onto #16645. There are a lot of commits from the dependencies
 listed above. Only three commits are excludive to this ticket here, so
 
[http://git.sagemath.org/sage.git/diff/?h=a60fe0b14aa4094c86c5efb387f9fd5a9706a218&id2=bb7307f0649cfa90916f74c102d1d09a424b759a
 these are the changes] that need to be reviewed in this ticket here.

 At the moment, the APNG support isn't integrated with the `save` and
 `show` methods. I'd do so based on #7298, but in order to avoid dependency
 hell, I'll deal with this in a separate ticket so you can review the
 changes here independently.

--
Ticket URL: <http://trac.sagemath.org/ticket/16571#comment:6>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to