Converting beamer slides to animated images

I generated that animated GIF the following way under Ubuntu Linux. It should work under other OSs as well because the external software is also available for Windows, Mac and others.

This assumes a beamer frame with several overlays as a starting point. The code for the GIF above can be found in my answer to Highlighting specific parts of a TikZ drawing.

  1. Ensure otherwise empty slides, e.g. \setbeamertemplate{navigation symbols}{}%
  2. Ensure that all slides have the same size.
  3. Compile to PDF (directly or indirectly).
  4. Crop the PDF, e.g. using pdfcrop <file>.pdf.
  5. Use ImageMagick to generate an animated GIF from the multi-page PDF:

    convert -verbose -delay 50 -loop 0 -density 300 <file>-crop.pdf <file>.gif
    

    Change the settings to your liking.
    -verbose is not really required.
    -delay states the duration of every image in the animation in 1/100 s.
    -loop states the number of repeats. 0 here means repeat indefinitely.
    -density determines the density for the raster image in dots-per-inch (dpi). This will influence the GIF size and is required because the PDF is a vector graphic. You can also use 300x300 etc. to select the X and Y density separately.

Here also an external example showing a diagram I had in one of my scientific publications: MP-DPWM (300k)

I might add support for this to standalone. Conversion support is already added in the developer version.


For those who need non Beamer version, see the following.

LaTeX Input File:

In this illustration I use PSTricks.

% travelingwave.tex
\documentclass{minimal}
\usepackage{pstricks-add,multido}
\newcommand\Left{0}
\newcommand\Bottom{-0.9}
\newcommand\Right{3.14}
\newcommand\Top{0.9}

\parindent=0pt
\paperwidth=\dimexpr\Right cm\relax
\paperheight=\dimexpr\Top cm - \Bottom cm\relax
\special{papersize=\the\paperwidth,\the\paperheight}
\topmargin=-72.27pt
\oddsidemargin=-72.27pt
\pagecolor{black}

\begin{document}
\multido{\r=0+7.5}{48}
{
    \begin{pspicture*}(\Left,\Bottom)(\Right,\Top)
    \psplot[plotpoints=300,algebraic,linecolor=yellow]{\Left}{\Right}{0.9*sin(2*(x-\r*Pi/360))}
    \end{pspicture*}\newpage
}
\end{document}

Batch File:

rem compile.bat takes a LaTeX input file without extension.
echo off
latex %1
dvips -t unknown %1
gswin32c -dAutoRotatePages=/None -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%1.pdf %1.ps
convert -verbose -delay 25 -loop 0 -density 300 %1.pdf %1.gif
rem acrord32 %1.pdf
del %1.log
del %1.aux
del %1.dvi
del %1.ps

For the sake of simplicity, save both travelingwave.tex and compile.bat in the same directory. To compile, type compile travelingwave in DOS-command, and hit enter. Done!

Result:

enter image description here

Notes:

  1. See ImageMagick v6 Examples -- Animation Basics for the detailed description about convert's switches.
  2. If \pagecolor{<any-color-including-white>} is disabled, we will get an effect as follows. enter image description here
  3. ImageMagick's convert invokes GhostScript gswin32c.exe behind the scene as follows. enter image description here

I do not know if my answer meets the requirements of how the answers should be posted on this site (since it has practically no LaTeX code involved), but here it comes.


With the emergence of online tools it has become easy to convert documents of a certain extent into others, without the need to download any programs. All those tools are easy-to-use and so not need any space in our computer.

Since the beamer output is a PDF file, we can convert PDF to GIF with EZGIF by following these simple steps:

  1. Upload the PDF document
  2. Set up the GIF (choose slides and delay amount)
  3. Convert!

Here is an example:

enter image description here