如何自动从图像中裁剪背景?

如何自动从图像中裁剪背景?

我有一张 Google Docs 绘图,是一张小方案。然而,这张小方案被大量背景包围,占据了大量无用空间。

在此处输入图片描述

我不想手动删除背景,因为将来我可能需要额外的空间。

我知道 Latex 有很多图像包,所以我想知道是否有一些包可以用来自动检测无用的背景并裁剪我的图像,这样我周围就没有那么多空白。

我知道有些人会建议使用外部工具 pdfcrop。我已经尝试过它,但它根本不会裁剪图像。

这是 png图像文件和这是 pdf使用 Gdocs 下载的版本。

答案1

您不需要使用外部程序裁剪副本,只需向 中添加一些选项\includegraphics。此 MWE 显示两次相同的图像(重命名为image.png),带有和不带有无用的背景。两个图像都在一个框架内以显示边缘:

平均能量损失

\documentclass{article}
\usepackage{graphicx}
\begin{document}

\section*{Original image} 

\fbox{\includegraphics[width=\linewidth]{image.png}}

\section*{Trimmed and clipped image} 

\fbox{\includegraphics[width=\linewidth,trim=6.5cm 6cm 6.5cm 4cm,clip]{image.png}}

\end{document}

编辑:由于目标似乎是自动裁剪,而不是避免裁剪副本,但据我所知,这个问题已经在评论中使用外部工具完美解决,这只是在 MWE 中付诸实践。以下代码将 poorman 的宏添加到上面的 MWE:

\section*{Automatic crop}
Note: compile with \verb|--shell-escape|\\

\newcommand\cropped[1]{%
    \immediate\write18{convert -trim #1.png #1cropped.png}%
    \includegraphics[width=\linewidth]{#1cropped.png}}

\fbox{\cropped{image}}

将自动生成此图像:

平均能量损失

其实裁剪并不是由 LaTeX 完成的,需要一个额外的文件,但是谁在乎呢?反正运行时就完成了pdflatex

相关内容