客观的:首先,我将一张图片(名为test.png
)放在一个圆圈(由 制作TikZ
)中。然后,我想通过控制选项 的值来获得一个动画效果,以放大整个图形scale
。
但最终的排版并未显示放大的图形。
代码:
\documentclass{article}
\usepackage{animate,calc,tikz,graphicx}
\newcounter{animate}
\newcommand\test[1]{
\setcounter{animate}{10 * \real{#1}}
\begin{animateinline}[autoplay]{12}
\multiframe{\theanimate}{Rscale=0.1+0.1}{
\begin{tikzpicture}[transform shape]
\path
[path picture={\node at (0,0)
{\includegraphics[width=2.1cm]{test.png}};},
draw=orange,thick,scale=\Rscale,
]
(0,0) circle (1cm);
\end{tikzpicture}
}
\end{animateinline}
}
\begin{document}
\test{3.55}
\end{document}
答案1
据我所知,\multiframe
frames 值不能是实数,它必须是一个整数。而且你的动画图形需要一些空间来让图片变大。所以你需要为图片设置足够大小的空白背景(考虑图片的最终大小)。我为背景绘制框架只是为了显示效果。以下是一个工作示例。
\documentclass{article}
\usepackage[margin=2cm,showframe]{geometry}
\usepackage{lipsum}
\usepackage{animate,calc,tikz,graphicx}
\newcounter{animate}
\newcommand\test[1]{%
\par{\noindent\centering\setcounter{animate}{10 * #1}%
\begin{animateinline}[poster=last,autoplay,loop]{20}
\multiframe{\theanimate}{Rscale=0.1+0.1}{
\begin{tikzpicture}
\path [draw] (-4,-4) rectangle (4,4);
\node[circle,draw=orange,thick,scale=\Rscale] at (0,0){\includegraphics[width=1cm]{test.png}};
\end{tikzpicture}
}
\end{animateinline}\par}
}
\begin{document}
\lipsum[1]
\test{4}
\lipsum[2]
\end{document}
答案2
不清楚您想如何更改图像大小。只是固定圆形大小的图像?
\documentclass{article}
\usepackage{tikz}
\usepackage{animate}
\begin{document}
\begin{animateinline}[poster=first, controls, autoplay,
]{10}
\multiframe{12}{Rscale=1+1}%
{
\begin{tikzpicture}
\path[path picture={\node at (0,0)
{\includegraphics[scale=\Rscale]{example-image-duck}};},
draw=orange,thick,
] (0,0) circle (22mm);
\end{tikzpicture}
}
\end{animateinline}
\end{document}