大型图形的分割

大型图形的分割

我的文档中有大图形(PNG 图像),它们很细,但由于长度太长而占满了整个页面。是否有可用的软件包可以将它们切成两半,并将这两半并排放置为一个图形?

答案1

adjustbox使用 Martin Scharrer 的优秀软件包可以很容易地完成此操作:

\documentclass{article}
\usepackage{adjustbox}

\newcommand{\splitimage}[1]{%
  \adjustimage{trim=0 0.5\height{} 0 0, clip=true}{#1}%
  \adjustimage{trim=0 0 0 0.5\height{}, clip=true}{#1}%
}

\begin{document}
\splitimage{bottle}
\end{document}

或者仅使用graphicx功能:

\documentclass{article}
\usepackage{graphicx}

\newcommand{\splitimage}[1]{%
  \newlength{\imageheight}%
  \settoheight{\imageheight}{\includegraphics{#1}}%
  \includegraphics[trim=0 0.5\imageheight{} 0 0, clip=true]{#1}%
  \includegraphics[trim=0 0 0 0.5\imageheight{}, clip=true]{#1}%
}

\begin{document}
\splitimage{bottle}

\end{document}

图片取自 Wikimedia Comons:https://commons.wikimedia.org/wiki/File:Normflasche-1.jpg

答案2

你可以剪辑图像的任何内容:

\documentclass{article}
\usepackage{graphicx,multido}
\newlength\Iwidth\newlength\Iheight\newsavebox\IBox
\savebox\IBox{\includegraphics{Normflasche}}
\setlength\Iwidth{\wd\IBox} \setlength\Iheight{\ht\IBox}

\begin{document}

\noindent
\multido{\ry=0.5+-0.5, \rY=1.0+-0.5}{2}{%
  \multido{\rx=0.00+0.25, \rX=0.25+0.25}{4}{%
    \fbox{\includegraphics[%
       viewport={\rx\Iwidth} {\ry\Iheight} {\rX\Iwidth}  \rY\Iheight,clip,scale=0.5]{Normflasche}}} \\[2pt]%                                                                                                             
}                                                                                                                         

\end{document}

在此处输入图片描述

答案3

在 ConTeXt 中,您可以使用\clip命令。使用\setupclipping您可以选择要剪辑的内容。在这里我选择在垂直轴上剪辑成五个切片。使用x=…y=…设置您可以指定要检索哪个切片。

\setupclipping
  [nx=1, ny=5]

\starttext

\dorecurse{5}{
  \clip[y=\recurselevel]{\externalfigure[hacker]}\blank}

\stoptext

结果:

结果

答案4

在此处输入图片描述

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{multido}
\usepackage{graphicx}

\def\Columns{5}% columns
\def\Rows{5}% rows
\def\Filename{ParisHilton}
\def\Scale{1}

\newsavebox\IBox
\savebox\IBox{\includegraphics[scale=\Scale]{\Filename}}


\psset
{
    xunit=\dimexpr\wd\IBox/\Columns\relax,
    yunit=\dimexpr\ht\IBox/\Rows\relax,
}

\SpecialCoor
\begin{document}

\multido{\ny=\Rows+-1}{\Rows}
{
    \multido{\nx=0+1}{\Columns}
    {
        \pspicture(\Columns,\Rows)
            \psclip{\psframe[linestyle=none,linewidth=0pt](!\nx\space \ny\space 1 sub)(!\nx\space 1 add \ny)}
                \rput[bl](0,0){\usebox\IBox}
            \endpsclip
        \endpspicture
    }
}

\end{document}

这里是图片我在此答案中使用它作为演示图片。

相关内容