Changing the frame order of an optimized GIF normally breaks it, because frames are stored as changes on top of the frame before. GIFmeta replays the GIF in the new order and rebuilds exactly the frames that need it, so every frame looks the same as in the original.
With the desktop app
- Move a frame: drag its β Ώ handle in the frame list, use the β¬ / β¬ buttons, or press Alt + β/β.
- Boomerang: duplicate frames with D and drag the copies to the end in reverse order.
- Press βΆ Play to check, then πΎ Save.
With the command line
--order takes every frame number exactly once, in the new order:
# a 5-frame GIF backwards
gifmeta mod input.gif --order 4,3,2,1,0 -o reversed.gif
# any length: build the list with seq (frame count from `gifmeta info`)
gifmeta mod input.gif --order "$(seq 39 -1 0 | paste -sd, -)" -o reversed.gif
Delays travel with their frame: if frame 4 was shown for 1 second, it still is β now first.
--order canβt be combined with --delete, --insert or --duplicate in the same command; run two commands
(the desktop app does this for you).
Boomerang (forward, then backward)
Re-ordering canβt list a frame twice, so first make copies, then order them:
gifmeta mod input.gif --duplicate 1,2,3 -o tmp.gif # 0 1 1' 2 2' 3 3' 4
gifmeta mod tmp.gif --order 0,1,3,5,7,6,4,2 -o boomerang.gif # 0 1 2 3 4 3' 2' 1'