Animated GIF - Fastest frame rate?

I am trying to create a sort of lightning effect and would like to flip through three or four frames super quickly (for the flash effect).
Problem is that in my animation settings, even if i set the frame duration to 1/100, the frames still show for like half a second each. Really does NOT come off like a lightning strike...
Is there some sort of trick to making the frames flip faster?
Or maybe a limitation on animated GIFs that I am not aware of?
On a side note, would Flash be a better tool for animated GIFs?

Are you using photographs in the animation? Is the animation large (what are its dimensions)? If yes. it could be the complexity of the image causing the delay. The more complex the image, the longer it takes the browser to render it. GIF animations should be small and the imaes it contains posterlike vector images. Flash might be the best program to use for your animation.

Similar Messages

  • Animated GIF ignoring frame timing

    I am trying to create simple animated GIFs with a few layers
    of text that simply fade in and fade out in sequence. My initial
    attempt worked perfectly. Most frames use the default 7/100's of a
    second delay as they fade. A few frames were manually set to much
    longer delays so that the text pauses, before fading out to be
    replaced by the next text.
    When I reopened the file, to adjust the background color, and
    then re-saved it, the GIF now plays straight through, ignoring the
    timing of each frame. Nothing I do now can get it to pause on the
    appropriate frames. I've tried cutting the symbols out and pasting
    them into a new file, removing the animation from the symbols and
    reapplying it, etc.
    Any ideas, anyone?
    Thanks in advance.

    None, None.

  • Stepping an animated gif, one frame at a time?

    Does anyone know how to do this?
    I want my own timer to tell it when to paint the next frame.
    What I really want is an "asynchronous progress indicator", in other words, an icon that animates as long as stuff is still making progress.

    Does anyone know how to do this?
    I want my own timer to tell it when to paint the next
    frame.
    What I really want is an "asynchronous progress
    indicator", in other words, an icon that animates as
    long as stuff is still making progress.You can easily manipulate animated GIF images with Gif4J PRO for Java (http://www.gif4j.com/java-gif-imaging-gif4j-pro-library.htm)
    For example you can decode GIFs using Java Decoder (http://www.gif4j.com/java-gif4j-pro-gif-image-load-decode.htm) and then modify delays between frames or even extract frames and animate them manually.

  • Creating Animated GIF using Frames

    I would like to create an animated gif without using the 'tween' tool. Basically, I'd like to have an object move across the screen, stop at one point, perform a task (i.e., move arms/legs up and down in a 'jumping jack' style) and then continue on across the screen. I create the first frame then click on the 'duplicate frame' icon. In this frame I use the puppet warp feature to change the position of my object's arms/legs. Next, I duplicate the frame again and repeat the puppet warp process. Finally, I continue to duplicate the frames, moving the object 'x' spaces each frame until it finishes its journey across the screen.
    Unfortunately, when I change the position of my object's legs/arms, it changes all of them across all frames. However, the program still allows the object to continue its journey across the screen.
    Because of this, I have had to create separate jpg files for each and every one of the object position changes, then import each one with the 'place' tool into the layers and finally create frames from layers and save the gif that way.
    Is there a way to do the above without having to create a separate jpg for each one?

    Hi SweetFang,
    If you're using the Puppet Warp tool, I may suggest you change your workflow. When you duplicate a frame, it doesn't necessarily duplicate the object that is being animated so each change you make will show up in every frame. Instead of duplicating frames to make your changes, try duplicating layers. It will be a good deal easier than saving out a .jpg for each image and then placing them in.
    1. Create your background.
    2. Create a new layer for the object you will animate. Position it how you want it to look in the first frame of your animation.
    3. Now, duplicate the layer and use the puppet transform tool to make your first change.
    4. Repeat this process: duplicate your most recent layer, make your change, duplicate your most recent layer, make your change, etc. (To keep your workspace clear you may want to make each previous layer invisible when you add a new one)
    5. When you're completely finished, open your Animation panel (CS5) or Timeline panel (CS6) and in the flyout menu, choose Make Frames From Layers
    This workflow is essentially what you're doing already, but you're duplicating layers instead of frames and then making the frames automatically.
    Please let me know if this makes your project a little bit smoother.
    Cheers,
    Michael

  • Fireworks MX animated gif problem

    I am creating a rotating banner with fireworks and I have
    changed all the frame rates from default ( 7 ) to ( 100 ).
    Everytime I go to optimize and change to animated gif. the frame
    rates change back to ( 7 ). Somebody please help.

    quote:
    Originally posted by:
    r_cronier
    I am creating a rotating banner with fireworks and I have
    changed all the frame rates from default ( 7 ) to ( 100 ).
    Everytime I go to optimize and change to animated gif. the frame
    rates change back to ( 7 ). Somebody please help.
    What happened is that you picked a factory preset from the
    Saved Settings dropdown menu. If you don't want to use presets,
    just ignore that top-most dropdown menu. Use the rest of the
    options to set your values: as long as you specify Animated GIF in
    the upper left dropdown menu and pick a palette, the Optimize
    function still works as intended.
    Btw, If you need to use your values regularly, it's a good
    idea to save them as a custom preset so that will show up in the
    Saved Settings menu, along with the factory presets.
    Hope that helps. :-)
    SiamJai
    ~~~~
    http://design.thaiwonders.com
    - Innovative Fireworks & Game Art Community

  • How do I add animated .gif files to a JFrame?

    Hi, I'm making an underwater scene in java for my degree assignment. I have a JFrame with an underwater background and a bunch of .gif fish moving around inside, but they should be animated and they're not. They animate outside of java. How can I make the .gif files animate?

    Hi, I'm making an underwater scene in java for my
    degree assignment. I have a JFrame with an underwater
    background and a bunch of .gif fish moving around
    inside, but they should be animated and they're not.
    They animate outside of java. How can I make the .gif
    files animate?A simple example:
    /* save as AnimeGif.java */
    import javax.swing.*;
    import java.awt.*;
    import java.util.*;
    class AnimGifPanel extends JPanel{
      Image[] imgs;
      int w, h;
      Random rand;
      public AnimGifPanel(Image[] ims, int wid, int hei){
        imgs = ims;
        w = wid;
        h = hei;
        setPreferredSize(new Dimension(w, h));
        setBackground(Color.cyan);
        rand = new Random();
      public void paintComponent(Graphics g){
        super.paintComponent(g);
        for (int i = 0; i < imgs.length; ++i){
          g.drawImage(imgs, rand.nextInt(w), rand.nextInt(h), this);
    public class AnimeGif{
    public static void main(String[] args){
    String filename = "fish.gif"; // an animated gif
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container con = frame.getContentPane();
    Image[] ia = new Image[5];
    for (int i = 0; i < ia.length; ++i){
    ImageIcon ic = new ImageIcon(filename);
    ia[i] = ic.getImage();
    AnimGifPanel agp = new AnimGifPanel(ia, 500, 400);
    con.add(agp, BorderLayout.CENTER);
    frame.pack();
    frame.setVisible(true);

  • Can't set frame rate on animated GIF PSE8 on Mac

    When saving an animated GIF in Elements 8 (running on Mac OSX 10.6 Snow Leopard) I can't modify the frame rate. It is set at the default .2 delay and can't be modified. Anyone know of a fix for this?
    Thanks.

    Thanks Barbara... I have used that very workaround already - but was hoping there was a solution so I could just do it in the app designed for this! So unfortunate that Adobe knows about this bug and hasn't fixed it!

  • Reading gif animation frame rates and such?

    Okay so I've been coding java for some time now and I mostly just make applications for fun.
    I usually don't have to get help for coding so this is my first post here...
    The current goal I have is a application that displays animations (may turn into a animation editor)
    I've tried searching on google alot for the answer but no justice :(
    Okay so I have the image loading, a semi-nice gui, the image displays and cycles through the animation.
    But the thing that I want is for the image cycle to actually know the real frame rate of the gif instead of having to define it myself.
    Is there anyway to do this? I was reading up and the only solution I found was to read the bytes of the file itself but that would take alot of work and I haven't got a clue on how to do that.
    This is my code for loading the animation:
    public void loadAnimation(String name) {
            final File imageName = new File(name);
            new Thread() {
                @Override
                public void run() {
                    for(int i = 0; i < animationImage.length; i++) {
                        if(animationImage[i] != null) {
                            animationImage.flush();
    animationImage[i] = null;
    if(lastImageDrawn != null) {
    lastImageDrawn.flush();
    lastImageDrawn = null;
    lastImageIndex = 0;
    ImageReader reader = ImageIO.getImageReadersByFormatName("gif").next();
    readingImage = false;
    try {
    reader.setInput(new FileImageInputStream(imageName));
    totalImages = reader.getNumImages(true);
    imageProgressBar.setMax(totalImages);
    readingImage = true;
    int currentImage = 0;
    while(readingImage) {
    BufferedImage image = reader.read(currentImage);
    animationImage[currentImage] = image;
    currentImage++;
    imageProgressBar.setValue(currentImage);
    imageProgressBar.setText("Loaded frame: " + currentImage + " / " + totalImages + " - " + imageProgressBar.getPercent() + "%");
    repaint();
    image.flush();
    if(currentImage == reader.getNumImages(true)) {
    readingImage = false;
    reader.reset();
    reader.dispose();
    } catch (IOException e) {
    e.printStackTrace();
    }.start();
    }If you guys could help it'd be very appreciated.
    EDIT: Oh yeah, I don't want to use any library's I usually like coding things myself...
    Edited by: steve4448 on May 7, 2010 11:45 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Given the following declarations which completely define a GIF animation,
    //information obtained from source file/url.
    private Image[] images;
    private short[] durations; //hundredths of a second
    private short[] xOffsets;
    private short[] yOffsets;
    private Disposal[] disposalMethods;
    //The background color of the global pallete in the GIF file is not
    //used.  It is here merely in case you want to change the implementation
    //of RESTORE_TO_BACKGROUND disposal method.
    private Color backgroundColor;the following method will load all this information from a GIF file. Keep [this page|http://java.sun.com/javase/6/docs/api/javax/imageio/metadata/doc-files/gif_metadata.html] open in a web browser as you look at the code. The class referred to as "Disposal" in the code is an enum class. It's provided in my post below this one.
    /**Loads all the frames in an src from the given ImageInputStream.
    * Furthermore, if the src references a GIF file then information
    * on frame durations, offsets, and disposal methods will be extracted
    * (and stored).  The src stream is not closed at the end of the method.
    * It is the duty of the caller to close it if they so wish.*/
    private void loadFromStream(ImageInputStream imageStream)
            throws java.io.IOException {
        //obtain an appropriate src reader
        java.util.Iterator<ImageReader> readers =
                ImageIO.getImageReaders(imageStream);
        ImageReader reader = null;
        while(readers.hasNext()) {
            reader = readers.next();
            String metaFormat = reader.getOriginatingProvider()
                    .getNativeImageMetadataFormatName();
            if("gif".equalsIgnoreCase(reader.getFormatName()) &&
               !"javax_imageio_gif_image_1.0".equals(metaFormat)) {
                continue;
            }else {
                break;
        if(reader == null) {
            throw new java.io.IOException("Can not read image format!");
        boolean isGif = reader.getFormatName().equalsIgnoreCase("gif");
        reader.setInput(imageStream,false,!isGif);
        //before we get to the frames, determine if there is a background color
        IIOMetadata globalMeta = reader.getStreamMetadata();
        if(globalMeta != null && "javax_imageio_gif_stream_1.0".equals(
                globalMeta.getNativeMetadataFormatName())) {
            IIOMetadataNode root = (IIOMetadataNode)
                    globalMeta.getAsTree("javax_imageio_gif_stream_1.0");
            IIOMetadataNode colorTable = (IIOMetadataNode)
                    root.getElementsByTagName("GlobalColorTable").item(0);
            if (colorTable != null) {
                String bgIndex = colorTable.getAttribute("backgroundColorIndex");
                IIOMetadataNode colorEntry = (IIOMetadataNode) colorTable.getFirstChild();
                while (colorEntry != null) {
                    if (colorEntry.getAttribute("index").equals(bgIndex)) {
                        int red = Integer.parseInt(colorEntry.getAttribute("red"));
                        int green = Integer.parseInt(colorEntry.getAttribute("green"));
                        int blue = Integer.parseInt(colorEntry.getAttribute("blue"));
                        backgroundColor = new java.awt.Color(red, green, blue);
                        break;
                    colorEntry = (IIOMetadataNode) colorEntry.getNextSibling();
        //now we read the images, delay times, offsets and disposal methods
        List<BufferedImage> frames    = new ArrayList<BufferedImage>();
        List<Integer>       delays    = new ArrayList<Integer>();
        List<Integer>       lOffsets  = new ArrayList<Integer>();
        List<Integer>       tOffsets  = new ArrayList<Integer>();
        List<Disposal>      disposals = new ArrayList<Disposal>();
        boolean unkownMetaFormat = false;
        for(int index = 0;;index++) {
            try {
                //read a frame and its metadata
                javax.imageio.IIOImage frame = reader.readAll(index,null);
                //add the frame to the list
                frames.add(forceNonCustom((BufferedImage) frame.getRenderedImage()));
                if(unkownMetaFormat)
                    continue;
                //obtain src metadata
                javax.imageio.metadata.IIOMetadata meta = frame.getMetadata();
                IIOMetadataNode imgRootNode = null;
                try{
                    imgRootNode = (IIOMetadataNode)
                            meta.getAsTree("javax_imageio_gif_image_1.0");
                }catch(IllegalArgumentException e) {
                    //unkown metadata format, can't do anyting about this
                    unkownMetaFormat = true;
                    continue;
                IIOMetadataNode gce = (IIOMetadataNode)
                    imgRootNode.getElementsByTagName("GraphicControlExtension").item(0);
                delays.add(Integer.parseInt(gce.getAttribute("delayTime")));
                disposals.add(Disposal.disposalForString(gce.getAttribute("disposalMethod")));
                IIOMetadataNode imgDescr = (IIOMetadataNode)
                    imgRootNode.getElementsByTagName("ImageDescriptor").item(0);
                lOffsets.add(Integer.parseInt(imgDescr.getAttribute("imageLeftPosition")));
                tOffsets.add(Integer.parseInt(imgDescr.getAttribute("imageTopPosition")));
            } catch (IndexOutOfBoundsException e) {
                break;
        //clean up
        reader.dispose();
        //copy the source information into their respective arrays
        if(!frames.isEmpty()) {
            images = frames.toArray(new BufferedImage[]{});
        if(!delays.isEmpty()) {
            durations = new short[delays.size()];
            int i = 0;
            for (int duration : delays)
                durations[i++] = (short) (duration == 0?DEFAULT_DURATION:
                                                        duration);
        if(!lOffsets.isEmpty()) {
            xOffsets = new short[lOffsets.size()];
            int i = 0;
            for(int offset : lOffsets)
                xOffsets[i++] = (short) offset;
        if(!tOffsets.isEmpty()) {
            yOffsets = new short[tOffsets.size()];
            int i = 0;
            for(int offset : tOffsets)
                yOffsets[i++] = (short) offset;
        if(!disposals.isEmpty()) {
            disposalMethods = disposals.toArray(new Disposal[]{});
    }

  • Creating a Gif is different frame rate

    If I have an uncompressed .AVI file that I created in After Effects CS5.5 which is 23.976 fps, and load it in Adobe Media Encoder CS5.5, and tell it to create a .GIF of it, at an output fps of 23.976, when I load the created .GIF into Adobe After Effects it tells me the frame rate is 25 fps and there is a black frame padded on the end.  I want the frame rate of the GIF to be what I ask it to be, ie. 23.976, with no additional black frames.
    Here's what happened with screenshots:
    1. I load the uncompressed AVI file that was created in Adobe After Effects CS5.5 into Adobe Media Encoder CS5.5.  Note below that Adobe Media Encoder is saying that the source clip is 23.976 fps, and that the export settings are to create an animated GIF at 23.976 fps.
    2. After Adobe Media Encoder CS5.5 has said "done" (Encoding Completed Succesfully) for this export to a .GIF, if I take that .GIF file that Adobe Media Encoder has just created into Adobe After Effects CS5.5, this is what it says:
    As can be seen above, Adobe After Effects CS5.5 is saying the GIF file that Adobe Media Encoder CS5.5 has just encoded is actually 25 fps, not 23.976 fps like I told it to be exported as.  Also, the GIF Adobe Media Encoder has created is 10 frames long, whereas my original uncompressed AVI is 9 frames long.
    Edit: I've just been reading up on the GIF format and it seems it doesn't store a frame rate but instead stores a frame delay, which is in hundredths of a second.  If this is just an integer, is this the reason for the displayed frame rate discrepancy, ie. 1 frame at 23.976 fps  would be 4.1708 hundredths of a second I think, and 1 frame at 25 fps would be 4 hundredths of a second I think - both rounded to the nearest integer would be 4 hundredths of a second so would the frame delay be set to "4" for both 23.976 fps and 25 fps? (there is also the fact that some short time will be taken for the drawing of the frame)
    Though even with the above, it shouldn't be increasing the amount of output frames.  It converts it correctly (no additional frames) if I use VirtualDub to convert the AVI to GIF instead of Adobe Media Encoder CS5.5.

    Thanks.  Could you get them to also check other parts of the code too.  eg. when I had a work area set in Adobe After Effects CS5.5 and then loaded that project into Adobe Media Encoder (dynamic link etc.) and rendered just the work area I think it was about a frame out then too - I don't think it was a GIF in that case but another type (maybe AVI/H264).

  • Animated Gif - Problem with Frame Delay

    Mac OS X 10.5.8 
    PSE 6.0
    I just created an animated gif by following the steps in PSE Help.  It says that I should be able to adjust the rate at which the images rotate by changing the Frame Delay measurement but I am unable to change it.  In fact I am unable to change anything in the Animation section of the dialog box. 
    When I check Animation, the options appear to become active (they're no longer greyed out) but I can neither uncheck the Loop option nor change the Frame Delay option.  All other sections of the dialog box work fine.
    Your help would be most appreciated!
    Beth

    Unfortunately this is broken in PSE 6 and PSE 8. You can tab into the frame delay box if you start above it someplace on that side of the screen, and it appears to let you change the rate, but your choice doesn't really affect the actual frame rate. The only workaround is to duplicate frame layers that you want to stay onscreen longer (so it will be changing just as fast, but not visibly).

  • Animated gif frame count & fps

    How do I find out details of an animated gif? I need to know the number of images in a strip, and also the frame rate. I would like to convert the strip to a BufferedImage for animation.

    See http://www.fmsware.com/stuff/gif.html for a free decoder.
    It will give you a frame count, and return each frame as a BufferedImage. It will also tell you the duration of each frame (animated GIF's don't have a fixed frame rate).
    -- Kevin

  • Open and edit animated .gif while preserving frame timing

    CS4 Premium Design Edition, Win XP
    I was disappointed with the removal of Image Ready from CS3 because although some of the functionality was placed into Photoshop 10, there was no way to open and edit an existing animated .gif while preserving the timing of each individual frame. I was told on the PS forum at the time that I really needed to use Fireworks. I resented that, because I was very happy with Image Ready and I didn't want to have to learn a new application just to gain functionality that had been included in previous versions of PS/IM.
    I've now got CS4 Premium Design Edition which of course includs Fireworks... and here's what Help has to say on the subject of imported .gifs.
    "Note: When you import an animated GIF, the state delay setting defaults to 0.07 seconds. If necessary, use the States panel to restore the original timing."
    This is no use to me. What if I don't know the individual frame timings? What if there are 200 frames with varying timings?
    Simple question: which current Adobe product is capable of importing a .gif while retaining the frame timings? If anyone knows, or if I've misunderstood the nature of the Fireworks Help quote above, I'd really appreciate some input here. Thanks :)
    Not so simple question: why was an excellent gif-editing application thrown out to have its functionality partially replaced by a bunch of scripts and half-effective workarounds cooked up by desperate users ("import a gif by using the video import and typing *.* into the filename box..")? It's a fair question I think.
    Mark

    Hi Bob, that's not glib at all, it's a reasonable question.
    I uninstalled it along with everything else when I installed CS3, in the reasonable expectation that whatever replaced IR would be at least equal in functionality.
    Perhaps I should just dig out CS2 and install IM from there, but I have some serious reservations about doing so, because I don't know if/how a partial install of CS2 will impact upon my installation of CS4, and I'm not confident of getting support.
    I am also curious to know if/why Adobe actually removed basic functionality without replicating or replacing it in their other software. I really want to know: which recent, currently supported Adobe product
    should I be using in order to regain this functionality? Or do Adobe no longer produce a geniuinely comprehensive .gif-editing application?
    Mark

  • Animated GIF frame loss

    I have an applet that has a JPanel with a JLabel in it. That JLabel was created with an ImageIcon constructor with an animated gif image. The gif has eleven frames (each with replace set) and is set to loop. When I bring up the applet the image animates through the first 7 frames then stops. I can File/Open the gif in Netscape and it looks fine - animates all images and loops. Looking at it with:
    setDebugGraphicsOptions(DebugGraphics.BUFFERED_OPTION); or FLASH_OPTION
    it looks good until that 7th frame then I start to see flash of grey the size of the JLabel.
    I understand that the ImageObserver defaults to the JLabel. But I have tried directly setting it with no joy. I have also tried calling .flush() on the image with no joy. So I tried a different animated gif and it stopped on the 3rd frame (but also appears fine in a browser).
    I am on day 2 of trying to figure this out (pulling my hair out).
    I cut this down quite a bit, so there may be syntax errors.
    public class RRR extends JApplet implements RRRConsts
    public void init()
    loadImages();
    myJPanel = new MyJPanel();
    contentPane.add(myJPael);
    private void loadImages()
    try
    problemImage = loadImage(new URL(getDocumentBase(),
    "problem.gif"));
    catch (Exception e)
    { logger.log(Level.SEVERE, "Unable to load images", e); }
    private Image loadImage(URL url) throws InterruptedException
    Image image = getImage(url);
    MediaTracker tracker = new MediaTracker(this);
    tracker.addImage(image, 0);
    tracker.waitForID(0);
    return image;
    MyJPanel myJPanel = null;
    static Image problemImage = null;
    class MyJPanel extends JPanel implements RRRConsts
    MyJPanel()
    setLayout(null);
    setBounds(0,0,468,540);
    setOpaque(false);
    buildUI();
    private void buildUI()
    myLabel = new MyLabel();
    add(myLabel);
    private MyLabel myLabel = null;
    class MyLabel extends JLabel implements RRRConsts, ActionListener
    MyLabel()
    super(new ImageIcon(RRR.problemImage));
    }

    I just had the same problem. It seems that when using an animated gif as ImageIcon it will not be loaded compeltly if it is too large. The maximum seems to be somewhere between 60 - 70 KB.
    I managed to use a higher compression on my gifs to make them smaller, but I haven't found any general solution yet.

  • I am trying to create a simple animated gif in Photoshop. I've set up my frames and want to use the tween to make the transitions less jerky. When I tween between frame 1 and frame 2 the object in frame two goes out of position, appearing in a different p

    I am trying to create a simple animated gif in Photoshop. I've set up my frames and want to use the tween to make the transitions less jerky. When I tween between frame 1 and frame 2 the object in frame two goes out of position, appearing in a different place than where it is on frame 2. Confused!

    Hi Melissa - thanks for your interest. Here's the first frame, the second frame and the tween frame. I don't understand why the tween is changing the position of the object in frame 2, was expecting it to just fade from one frame to the next.

  • Animated GIF not cycling frames in Tomcat

    I have pages that use animated gif files to get across a point.
    In the IDE, they cycle the images as they should
    SunAppserver cycles them properly.
    I only get the first frame in Tomcat (5.5.7)
    Over on the java.net, I saw this on a page concerning JAI:
    GIF
    The decoder supports animated GIF files and GIF files with transparent background. Only the first frame of an animated GIF file may be loaded via JAI; subsequent frames must be obtained via direct use of the ancillary codec classes.
    Um, am I missing something, or is this a Tomcat problem ?

    You just need transparency in your file. Not sure if it has to be pre-multiplied. In graphic converter you need to remove the backgrounds. Haven't used GC in years so can't say how you can be sure it's gone but in Photoshop, Illustrator and After Effects you can choose to have a checkerboard background to tell you when you are seeing 'thru' the image and by how much (the overall opacity or mask of the whole image if that doesn't confuse the issue).
    If you are using PS images they will almost certainly generated with a set of rectangles including a perimeter cropping box and white background and these need to go either before it's bitmapped in a vector base app or the relevant pixels erased after it has been bit mapped in GC. As previously mentioned, if you have a unique bkgd colour, colour selecting/keying are some ways to do this). Much faster for >10 images to generate the plots without the bkgd but this may not be possible, what software is source material coming from?
    I regularly bring in vector based moving art-work into keynote with alpha from Adobe AE, Apple Quartz and rendered .mov files. Some codecs (H.264) don't support a separate alpha channel (RGBA) but PNG (slow to render) and animation and a bunch of others do. Pre-multiplying removes the A channel in the RGBA (by multiplying the R/G/B by the A values) thereby speeding and making compatible with some GPUs/render pipelines.

Maybe you are looking for