如何获取图像的尺寸(宽度、高度)?

如何获取图像的尺寸(宽度、高度)?

我想使用完整的 插入图片到页面底部\paperwidth。我textblock文本位置包并以这种方式定义命令:

\newcommand*{\grafikunten}[1]{
    \begin{textblock*}{\paperwidth}(0mm, 80mm)
        \includegraphics[width=\paperwidth, keepaspectratio]{#1}
    \end{textblock*}
}

到目前为止,这种方法都是可行的,假设图片的垂直起始位置始终为“80mm”,但事实并非如此。这取决于图像的高度。

如何获取图像的高度来计算精确的垂直位置?

或者是否有其他方法将图像放置在页面底部,或其他每一侧,甚至在角落?

答案1

环境textblock还有一个可选参数,用于指定文本块的锚点:[0,1]即左下角。这样你就不需要知道图像的高度了:

\documentclass{article}
\usepackage[a6paper,hmargin=10mm,vmargin={10mm,20mm}]{geometry}
\usepackage[absolute]{textpos}
\usepackage{graphicx}
\usepackage{lipsum}

\newcommand*{\grafikunten}[1]{
    \begin{textblock*}{\paperwidth}[0,1](0mm, \paperheight)
        \noindent
        \includegraphics[width=\paperwidth, keepaspectratio]{#1}
    \end{textblock*}
}

\begin{document}
\grafikunten{redline}
\lipsum[1-2]
\end{document}

结果

测量

在这种情况下,不需要知道图像的高度。在其他情况下,获取高度会很有用。

图像的高度可以通过以下方式测量\settoheight

\newdimen\imageheight % goes into the preamble

\settoheight{\imageheight}{%
  \includegraphics[width=\paperwidth,keepaspectratio]{myimage}%
}

或者将图像放入一个框中:

\newsavebox\imagebox % goes into the preamble

\sbox{\imagebox}{%
  \includegraphics[width=\paperwidth,keepaspectratio]{myimage}%
}%

盒子的高度、深度和宽度可通过以下方式获得:或\ht\imagebox。(LaTeX 纯粹主义者可以使用包代替。)\dp\imagebox\wd\imageboxsettobox

答案2

正如我在评论中提到的,我的回答是有哪些方法可以将内容绝对定位在页面上?提供了一种方法来实现您的要求。我修改了示例以在我的论文上布局图像(而不是文本)。

如果您事先不知道图像的大小(我假装是蓝色框),请将其设置在保存框中,并使用其测量值来指导放置。

\documentclass{article}
\usepackage{everypage}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage[demo]{graphicx}
% THESE ARE LaTeX DEFAULTS; CAN CHANGE IF NEEDED.
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newcommand\atxy[3]{%
 \AddThispageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
  \raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
% VERIFIED THAT SETTING \hoffset AND \voffset DO NOT BREAK SOLUTION.
%\hoffset=0.4in
%\voffset=0.2in
\begin{document}
\lipsum[1]
\atxy{0in}{\paperheight}{\includegraphics[width=\paperwidth,height=2cm]{test}}
\atxy{0in}{\paperheight}{\textcolor{red}{\includegraphics[width=1cm,height=1cm]{test}}}
\atxy{\dimexpr\paperwidth-1.5cm}{\paperheight}{\textcolor{yellow}{%
  \includegraphics[width=1.5cm,height=1.5cm]{test}}}

\newsavebox\myfig
\savebox{\myfig}{\textcolor{blue}{\includegraphics[width=3cm,height=3cm]{test}}}
\atxy{\dimexpr\paperwidth-\wd\myfig}{\ht\myfig}{\usebox{\myfig}}
\end{document}

在此处输入图片描述

答案3

使用包calc

\newlength{\mylength}
\setlength{\mylength}{\heightof{\includegraphics{myimage.png}}}

长度\mylength现在包含图像的高度,您可以使用它来执行最佳定位。

相关内容