Can I have an animated GIF with more than 256 colours per frame? I want to do an animated GIF but the limited colour pallet is making it look like rubbish.
5 Answers
Yes, you can, with certain limitations.
GIF supports per-frame (local) palettes and has an "as-is" frame disposal method that allows combining of several frames.
I've written [a GIF encoder "gifski" using this technique]. It produces animations with about 1000-3000 colors per frame.
The catch is you can only take advantage of this when not all pixels of the image change between frames. So, if you have something moving in front of a still background, you can have more than 256-color animation — the moving object will be limited to 256 colors, but the background could be composed of several frames with different palettes. With clever dithering, it's even possible to reuse some pixels of moving objects.
-
Do you mean that only animated images can have more than 256 colors? Is it possible to hack it in anyway that we can display a static image with more than 256 colors?– PacerierOct 14, 2014 at 21:32
-
4@Pacerier This works only for animations. In theory it would be possible for a static GIF, but due to legacy/bugs browsers interpret
0
frame delay as ~1/16th of a second, so at best you can have animation that builds a static image. For static you're better off with PNG/JPG anyway.– KornelOct 15, 2014 at 23:32 -
3Yea gif doesn't even seem to have a single advantage in the domain of static images.– PacerierOct 17, 2014 at 18:34
-
2@GeorgeEdison you could, but GIF has awfully weak compression, so it'd be worse in every way than just using PNG or anything else.– KornelOct 2, 2016 at 11:53
-
1@g491 gifsicle can build files like that (use multiple gifs with transparency and disposal=keep mode)– KornelFeb 2, 2017 at 19:35
No, you can't; GIF format only allows 256 colours.
-
3Per frame. Before you mention practicality issues, I'm pretty sure Bing is using these true-color GIFs right now. Mar 16, 2013 at 5:27
-
1I see 32697 colors on this gif: phil.ipal.org/tc.html and also goo.gl/DBdg1o– PacerierOct 14, 2014 at 21:31
At least, in theory, you can stack GIFs and make the extra colors transparent.
- First, you copy each frame so that you have two of each.
- Then, select the area by color with the sensitivity low enough so that it selects half the picture.
- Then, just erase everything inside the selection.
- Now, invert the selection.
- Then, go to the next frame and erase everything again.
- Save the end result (
raw-ani.gif
). - Delete half the frames.
- Save with a new file name (
ani1.gif
). - Load the previously saved version.
- Delete the other half of the frames.
- Save again (
ani2.gif
).
Hack some HTML with absolute positioning and put ani2.gif
on top of ani1.gif
.
Repeat the process to make four, eight, 16 layers or what you want.
You could also speed up the raw-ani.gif
result and have what Kornel described.
No gif files are not limited to 256 colors.
-
4While sort of true, the true-color GIF hack has some major limitations: it doesn't work on image viewers that don't support animation (or in browsers where the user has disabled GIF animation), it may render very slowly in some browsers that impose a minimum frame delay, and it tends to produce huge files that compress poorly. It's neat, but not really very useful in the real world. Just use PNG if you need more than 256 colors. (Alas, MNG/APNG browser support is really spotty.) Apr 19, 2012 at 0:20
-
Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. Jan 8, 2013 at 20:41
It is possible to have a true colour gif and there are various articles online, however they are not very practical.