Comments (4)
Perhaps you could just attach some GIFs that aren't working properly? 50% seems quite high, perhaps something else is happening
from omggif.
I'm pulling gifs from giphy's api
Here is one that renders incorrectly
http://media1.giphy.com/media/l2JJB3GtJDex2DXdC/giphy.gif
and here is one that is working
http://media2.giphy.com/media/l4KibWpBGWchSqCRy/giphy.gif
also to be clear this loading these files, creating a reader, and then decodeAndBlitFrameRGBA to a canvas.
from omggif.
I found something. If you pass the same ImageData.data to all of the frames this issue seems to be fixed, but this doesn't work at all for transparent gifs because the prior frames are also visible.
from omggif.
This doesn't have to do with omggif, this just has to do with how GIFs work. See the comment:
Line 141 in 380c5dc
And you can read about how disposal works in the spec:
https://www.w3.org/Graphics/GIF/spec-gif89a.txt
But note that most browsers deviate from the spec, and this is one of those cases. I tried to note the behaviour I know about in the source code.
In short: Some frames ask to draw over the previous frame, and some frames ask for the background to be cleared. You can check the disposal from frameInfo() to see what you should do.
In your case it is probably enough just to clear when dispose is 2.
from omggif.
Related Issues (20)
- Implement streaming HOT 12
- Please add license file HOT 2
- Disposal method 2 not supported HOT 2
- Combine frames with transparency HOT 3
- Quantization and efficient frame encoding
- Are you accepting PRs? HOT 4
- Infinite loop on truncated GIF HOT 3
- Unhelpful exception on exceeding buffer bounds HOT 5
- Exceptions do not include a stack trace
- Enumerate public API? HOT 3
- Blending operations in GIFs HOT 2
- Upload to bower
- Loop count when exporting GIF HOT 9
- Get global palette from GIF HOT 6
- Invalid Block Size HOT 5
- Supporting corrupted GIFs to some degree HOT 2
- Attempt to use undefined value HOT 1
- MIT license? HOT 3
- Corrupted GIF at the output HOT 4
- frame ghosting and partial frames HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from omggif.