5

When exporting an animated gif in Gimp (each layer is a frame of the animation), you can set the speed between each frame (layer) as a fixed number, by default 100 milliseconds. How do you instead specify:

  • 100 ms between layers 1 and 2
  • 200 ms between layers 3 and 4
  • 500 ms between layers 4 and 5

and so on? If not .gif, then how about .png animation?

enter image description here

2
  • If you are using windows, there is a really old free program called gif animator v1 that let you do this on a frame-by-frame basis. Commented Feb 2, 2022 at 19:08
  • Asked for Julia here where ffmpeg filtergraph is mentioned. Commented Oct 22, 2024 at 20:49

1 Answer 1

10

To add a delay to a specific layer you put the duration at the end of the layer name: Layer1 (200ms). This is the time this layer remains visible until it is covered by the next frame. The duration set there may be ignored/changed by browsers/players if too short or too log.

You can use the same principle to set how the layer is used:

  • (combine) to add it over image displayed so far
  • (replace) to replace the whole image.

So for instance, an image with the following layers:

enter image description here

Will show

  • a blue square for 3 seconds,
  • then a black square is added and is visible for 1 second over the blue square
  • then a red square with a transparent center (through which you see the white of the GDSE page) replaces everything for 2 seconds

enter image description here

4
  • To create a fast flashing effect between two layers with uneven delay per frame, can this be done without duplicating each layer multiple times? Commented Feb 2, 2022 at 20:32
  • You can always replace consecutive copies of the same layer by a single layer displayed with a longer duration, if this is the question. Commented Feb 2, 2022 at 21:02
  • consecutive copies of a layer, but interspersed with multiple copies of another layer. think of a zipper Commented Feb 3, 2022 at 1:04
  • No, you have to create the frames where they occur. Bu if you do this for all your layers, you can use the ofn-interleave-layers script. Use one of the "Single layer" option with "Merge: No", and name the layer with the delay before you give it to the script. Commented Feb 3, 2022 at 6:10

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.