KHTML developers: Animated GIF playing
Mosfet
dan.duley at verizon.net
Tue May 13 15:49:24 BST 2003
On Tuesday 13 May 2003 08:39 am, Stephan Kulow wrote:
> On Tuesday 13 May 2003 14:57, Mosfet wrote:
> > Well, dithering shouldn't be a problem... GIF color tables can only have
> > 256 colors ;-) You can have a global color table and local ones, but each
> > image frame will use only one colormap with 256 colors. Here's what the
> > spec says:
>
> I'm afraid I don't understand your ascii art. But as a matter of fact you
> can have 100 frames on different positions of the background with different
> 256 colours and each having it's own local color map.
>
Not my ASCII art, it's the GIF spec's ;-) It shows the highest color index is
255.
But yes, your absolutely right - In animation you have a bunch of different
sub-images with possibly their own local color tables at different offsets.
For 256c displays Qt should handle this when converting from an image to a
pixmap, but it would be more optimal to dither everything to the same palette
to avoid strange color changes when showing different frame subimages. I
didn't consider that.
> BTW: try to display http://www3.sympatico.ca/asid/in.gif, konqueror can't,
> xv can't, mozilla can, display can, IE can (afair), pixie can't. :)
>
Pixie can now ;-) Since Pixie views local images on your hard drive this is
easy - I just use GIF slurping to load a local file.
The incremental loading is my big concern. dgif_lib.c, the libungif decoder,
only reads local files but the calls to open and read a file are #define
macros so it's easily reimplemented. It would be easy to stick something that
can block and wait for data in there. I would still need to read the gif
block by block, but this would give us a standard and more robust
implementation I think, and it's only 1013 lines including comments...
BTW, I'm seeing on other threads people have responded to me without CC'ing
me. Don't do this - I won't see it! >;-)
> Greetings, Stephan
More information about the kde-core-devel
mailing list