Open 8d15854a-f726-4f6b-88e7-82ec1970fbba opened 10 years ago
Branch: u/gagern/ticket/16650
Only the last commit is really new. The merge before that did resolve a conflict, but in a pretty obvious way. Everything else is from the named dependencies.
Last 10 new commits:
e2d3e11 | Proper hyperlink formatting in animate documentation. |
bd17f04 | Add APNG support. |
a60fe0b | Turn generator into list when rendering frames. |
04665b0 | Fix frame size for standard example animation. |
f4a2427 | Merge fix of standard example animation into APNG branch. |
8af6a08 | Base Animation.show on Animation.save, and pass more arguments. |
3beb8b1 | Create HTML to embed generated GIF in notebook. |
c16f275 | Support HTML5 video tag. |
effa6cf | Merge branch ticket/7298 into ticket/16571 to create ticket/16650. |
83d734c | Add support for APNG to Animation.save(). |
Commit: 83d734c
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
bc9f681 | Merge fix of standard example animation into APNG branch. |
780e614 | Proper hyperlink formatting in animate documentation. |
10f8e52 | Make number of frames available after rendering using generator. |
941170b | Add APNG support. |
3a99225 | Merge ticket/16645 into ticket/16571 to deal with conflict. |
f0bfc49 | Allow embedding animations into tables. |
2fb3d6a | Mark test saving GIF as optional. |
f61d9d1 | Merge branch ticket/7298 into ticket/16571 to create ticket/16650. |
1e4de99 | Add support for APNG to Animation.save(). |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
e216b92 | Make number of frames available after rendering using generator. |
b057e61 | Add APNG support. |
f347d4c | Doctests for each method of APngAssembler using tracing fixture. |
7d2531d | Details on my APNG contribution in module documentation. |
dc0067d | Base Animation.show on Animation.save, and pass more arguments. |
4e9101f | Create HTML to embed generated GIF in notebook. |
e4807cc | Support HTML5 video tag. |
2f6a670 | Allow embedding animations into tables. |
d0e89d5 | Merge branch ticket/7298 into ticket/16571 to create ticket/16650. |
f5fc857 | Add support for APNG to Animation.save(). |
The recent changes from #17234 prevent our dependency #7298 from being merged, and at the moment I'm far from sure how to rebase that code, see #7298 comment:48. Once I get that rebased, there is one question regarding this ticket here as well:
Should we reuse the PNG format description, or introduce a new one?
On the one hand, APNG (as opposed to MNG) is very much about graceful degradation, so it makes sense to treat it as PNG in most places. On the other hand, perhaps the display manager can decide whether a client is actually capable of displaying APNG or not. If so, we might prefer supported APNG over GIF, but GIF over unsupported APNG interpreted as still PNG. If the display manager does not know about APNG support, but does know that PNG is supported, then the user should at least be able to choose APNG format manually, even though it might not be the auto-selected default in that case.
Do not reuse OutputImagePng
, that is for non-animated png.
Another basic output format should be a sequence of PNG, which can easily be displayed in a web browser with javascript (embed images as necessary). Perhaps the easiest animation format.
Replying to @vbraun:
Another basic output format should be a sequence of PNG, which can easily be displayed in a web browser with javascript (embed images as necessary). Perhaps the easiest animation format.
I'm not sure how much such a format would suffer from HTTP overhead, particularly for a large number of small frames. I guess it depends on the network connection (for the cloud in particular) whether that factor outweights the overhead of concatenating all PNGs to a single APNG file.
But if you are willing to use custom JavaScript code for animations, you could also use existing code which provides APNG support on browsers which don't support it natively.
I'm thinking about base64-encoded inline images, especially since IPython doesn't allow you to return arbitrary collections of files. Though an apng polyfill would work, too.
I intend not to work on this until #7298 gets reviewed and ready for merge.
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
a8d97b7 | Trac #7298: Enable HTML5 video in the Sage Notebook |
f6e6412 | Trac #7298: Implement output types for various video container formats |
ea5dfe2 | Trac #7298: Drop support for the autoplay and controls attributes for video |
de1dcbb | Add support for APNG to Animation.save() and Animation.show(format="png"). |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
6c6eee3 | Trac #16650: Add support for APNG to Animation.save() and Animation.show(). |
Since #7298 received a positive review just now, here is a rebased version of this modification here. With the new rich representations framework, there was a lot more to do than in the original commits. But it integrates APNG nicely with all the rest.
does not apply
Once #16571 and #7298 get merged, it is time to add support for animapted PNGs (APNG) to the
Animation.show()
andAnimation.save()
methods, and also to update the doctests to useshow(format="png")
for these.Depends on #7298 Depends on #16571
CC: @nilesjohnson
Component: graphics
Keywords: notebook, animate
Author: Martin von Gagern
Branch/Commit: u/gagern/ticket/16650 @
6c6eee3
Issue created by migration from https://trac.sagemath.org/ticket/16650