如何在过度拍摄后进行修剪

如何在过度拍摄后进行修剪

我在读这篇文章及其答案关于上图包所以我尝试了这个:

\documentclass{article}
\usepackage[abs]{overpic}
\begin{document}

\begin{overpic}[grid,tics=10]{elephant}
\end{overpic}

\end{document}

结果是:

截屏

(大象图片的创作共用信息可用这里

我不确定下一步该怎么做。我猜我用它trim来修剪图形。假设我们想修剪左右两侧的两个框,以及底部的一个框——如何指定框?有人可以标记我的 MWE 以便我确切地看到如何完成吗?谢谢。

答案1

trim是传递给 的一个选项\includegraphics。您可以用空格分隔四个值,这些值是要从右侧、底部、左侧和顶部删除的数量,顺序如下(经验法则:从右侧开始,然后顺时针继续)。

默认情况下,它使用“postscript 单位”,这与网格默认使用的单位相同,因此您可以直接在网格中读取所需的值。在您的网格中,每个框的尺寸为 10x10,因此要从左侧和右侧移除 2 个“框”,并从底部移除一个框,您必须使用trim=20 10 20 0

这将适当调整 tex 为该图形保留的空间大小,但图形仍将完整显示,即“溢出”保留空间。在您的例子中,它将向左溢出 20 个单位,向右溢出 20 个单位,向下溢出 10 个单位。如果您希望不显示修剪后的部分,则必须使用该clip选项。

以下 MWE 显示了您的原始图片、未剪辑的修剪结果以及最终的修剪和剪辑结果(我在线之间插入了 1cm 以避免由于第二张图的“溢出”而造成重叠):

\documentclass{article}
\usepackage[abs]{overpic}
\begin{document}

\begin{overpic}[grid,tics=10]{elephant}
\end{overpic}
\vskip 1cm
\begin{overpic}[grid,tics=10,trim=20 10 20 0]{elephant}
\end{overpic}
\vskip 1cm
\begin{overpic}[grid,tics=10,trim=20 10 20 0,clip]{elephant}
\end{overpic}
\end{document}

结果:

结果

答案2

用户定义数据

\def\M{5}% columns
\def\N{5}% rows
\def\MainScale{1}% scale
\def\filename{animal}% filename

\def\ChildScale{1}% cropped scale
\def\CenterX{2.5}
\def\CenterY{2.65}
\def\SemiWidth{1.5}
\def\SemiHeight{1.95}

在此处输入图片描述

在此处输入图片描述

将以下内容用 TeX 处理xelatex

\documentclass{article}

% User defined data

\def\M{5}% columns
\def\N{5}% rows
\def\MainScale{1}% scale
\def\filename{animal}% filename

\def\ChildScale{1}% cropped scale
\def\CenterX{2.5}
\def\CenterY{2.65}
\def\SemiWidth{1.5}
\def\SemiHeight{1.95}


% Internal used data
\usepackage{graphicx}
\newsavebox\IBox
\savebox\IBox{\includegraphics[scale=\MainScale]{\filename}}


\usepackage{pstricks-add}

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


\newpsstyle{gridstyle}
{
    gridcolor=gray,
    subgridcolor=cyan!50,
    gridlabels=5pt,
}

\psset
{
   xunit=\dimexpr\wd\IBox/\M\relax,
   yunit=\dimexpr\ht\IBox/\N\relax,
   style=gridstyle,
}

\newlength\xL
\newlength\xR
\newlength\yL
\newlength\yR

\usepackage{pgf}

\def\Zoom(#1,#2,#3)(#4,#5)(#6,#7){%
    \psframe[linecolor=#2,linewidth=2pt,dimen=inner](!#4 #6 sub #5 #7 sub)(!#4 #6 add #5 #7 add)
    \expandafter\gdef\csname#1\endcsname{%
    \begingroup
        \pgfmathsetlength{\xL}{\psxunit/\MainScale*(#4-#6)}
        \pgfmathsetlength{\yL}{\psyunit/\MainScale*(#5-#7)}
        \pgfmathsetlength{\xR}{\psxunit/\MainScale*(#4+#6)}
        \pgfmathsetlength{\yR}{\psyunit/\MainScale*(#5+#7)}
        \includegraphics[scale=#3,viewport={\xL} {\yL} {\xR} {\yR},clip]{\filename}
    \endgroup}}

\begin{document}

\begin{pspicture}[showgrid=top](\M,\N)
    \rput[bl](0,0){\usebox\IBox}
    \Zoom(One,red,\ChildScale)(\CenterX,\CenterY)(\SemiWidth,\SemiHeight)
\end{pspicture}

\begin{preview}
    \One
\end{preview}

\end{document}

相关内容