当将投影仪输出的每个 PDF 页面转换为 PNG 图像时,如何使其具有不透明的背景?

当将投影仪输出的每个 PDF 页面转换为 PNG 图像时,如何使其具有不透明的背景?

我想为beamer转换为 PNG 图像的每个 PDF 输出页面获取不透明背景。我尝试更改,\setbeamercovered{transparent=50}但这导致整个 PDF 页面的内容与最后一页相同。

是否有这样的选项beamer可以制作不透明的背景?

\documentclass{beamer}
%\setbeamercovered{transparent=50} 
\usepackage{tikz}

\usepackage[active,tightpage]{preview}
\PreviewBorder=12pt
\PreviewEnvironment{tikzpicture}


 \begin{document}
 \begin{frame}
 \begin{tikzpicture}
 \begin{scope}
     \draw[ultra thick] (0,0) ellipse[ x radius=1.2cm,y radius=2cm];\pause
     \clip (0,0) ellipse [x radius=1.2cm,y radius=2cm];\pause
     \fill[green] (0,0) ellipse [x radius=1.2cm,y radius=2cm];\pause      
     \fill[orange] (-1.4,-2) rectangle (-0.8,2);\pause
     \fill[blue] (-1.4,1.5) -- (0.2,1.5) -- (1.2,0.8) -- (1.2,2) --(-1.2,2) -- cycle;\pause
     \fill[yellow] (-0.75,1.5) -- (0.2,1.5) -- (0.8,1) -- (0.6,0.2) --(0.2,0) -- (-0.75,0) -- cycle;\pause 
     \fill[magenta] (0.8,1) -- (0.6,0.2) --(0.2,0) -- (0.8,-0.8) -- (0.8,-1.4) -- (1.4,-1.4) -- (1.4,1) --cycle;\pause
     \node[scale=12,inner sep=0pt] {R};    
 \end{scope}  
 \end{tikzpicture}
 \end{frame}
 \end{document}    

beamer当转换为 PNG 图像时,如何使输出的每个 PDF 页面都有不透明的背景?

答案1

具有默认主题的 Beamer 框架具有总是白色背景。

您的 MWE 是不是一份 beamer 文档。它是tikzpicture提取的一些 s preview

您可以使用特殊节点和环境(由TikZ 库提供)tikzpicture填充边界框来为每个节点添加白色背景:current bounding boxpgfonlayerbackgrounds

\documentclass{beamer}
%\setbeamercovered{transparent=50} 
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usepackage[active,tightpage]{preview}
\PreviewBorder=12pt
\PreviewEnvironment{tikzpicture}


\begin{document}
\begin{frame}
  \begin{tikzpicture}
    \begin{scope}
      \draw[ultra thick] (0,0) ellipse[ x radius=1.2cm,y radius=2cm];\pause
      \clip (0,0) ellipse [x radius=1.2cm,y radius=2cm];\pause
      \fill[green] (0,0) ellipse [x radius=1.2cm,y radius=2cm];\pause      
      \fill[orange] (-1.4,-2) rectangle (-0.8,2);\pause
      \fill[blue] (-1.4,1.5) -- (0.2,1.5) -- (1.2,0.8) -- (1.2,2) --(-1.2,2) -- cycle;\pause
      \fill[yellow] (-0.75,1.5) -- (0.2,1.5) -- (0.8,1) -- (0.6,0.2) --(0.2,0) -- (-0.75,0) -- cycle;\pause 
      \fill[magenta] (0.8,1) -- (0.6,0.2) --(0.2,0) -- (0.8,-0.8) -- (0.8,-1.4) -- (1.4,-1.4) -- (1.4,1) --cycle;\pause
      \node[scale=12,inner sep=0pt] {R};    
    \end{scope}
    \begin{pgfonlayer}{background}
      \fill[white]
      (current bounding box.south east)
      rectangle
      (current bounding box.north west);   
    \end{pgfonlayer}
  \end{tikzpicture}
\end{frame}
\end{document}

答案2

虽然这并非严格意义上的 TeX 问题,但您可以使用convert工具中的选项来imagemagick执行此操作。要使用的两个选项是 和-background-flatten第一个设置背景颜色,但第二个是必需的,因为默认情况下输出将是分层的,这在 png 中不太适用。

我通常使用以下命令从 pdf 输出 png,我用它来在此处发布截图,如下所示:

convert -density 600 -background white -flatten -resize 600 file.pdf file.png

顺序非常重要,因为它会影响输出的质量。

density和选项resize也有助于提高输出质量,但实际上并没有关系,尽管它们实际上有助于以-flatten某种方式处理选项。(以术语或单位density表示DPIresize以像素为单位,当只给出一个数字时,它对应于输出文件的宽度,高度在保持源纵横比的同时进行适当缩放)

密度/调整大小部分的要点是选择一种密度,在不调整大小的情况下,该密度至少是您实际想要获得的图像尺寸的两倍。

相关内容