我想在任何图片的顶部绘制一条上对角线,但我不知道如何找到绘图输入图像的尺寸。输入图像来自这里。 伪代码
\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\begin{document}
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=\textwidth]{test.png}};
\draw[white,thick] (1,0) -- (1,1);
\end{tikzpicture}
\end{document}
图 1 输入,图 2 输出,图 3 输出来自 cfr 的提案
TeXLive:2016年
操作系统:Debian 8.5
答案1
如果我没记错的话,这个问题的重点在于,你不需要知道尺寸就可以画出对角线。你只需改变坐标系来匹配这些方向即可。当然,这是过度绘制对角线。
\documentclass[tikz,border=10pt]{standalone}
\begin{document}
\begin{tikzpicture}
\node (n) [anchor=south west,inner sep=0] {\includegraphics[width=\textwidth]{example-image-a}};
\begin{scope}[x=(n.south east), y=(n.north west)]
\draw [red] (0,0) -- (1,1);
\end{scope}
\end{tikzpicture}
\end{document}
编辑
在测试图像的情况下,图像本身包含白色边框。因此,从左下角到右上角绘制的对角线将超出内部图片以包含该白色边框,因为就 Ti 而言,这是图像本身的一部分钾Z 很担心。
要查看此内容,请填充图片后面的节点。这里我使用了 2 个副本,尽管我不太清楚为什么。
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{backgrounds,fit}
\begin{document}
\begin{tikzpicture}
\node (n) [anchor=south west,inner sep=0] {\includegraphics[width=\textwidth]{example-image-a}};
\begin{scope}[x=(n.south east), y=(n.north west)]
\draw [red] (0,0) -- (1,1);
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}
\node (n) [anchor=south west,inner sep=0] {\includegraphics[width=\textwidth]{m}};
\begin{scope}[x=(n.south east), y=(n.north west)]
\draw [red] (0,0) -- (1,1);
\end{scope}
\begin{scope}[xshift=1.1\textwidth]
\node (n1) [anchor=south west,inner sep=0] {\includegraphics[width=\textwidth]{m}};
\begin{scope}[x=(n1.south east), y=(n1.north west)]
\draw [blue] (0,0) -- (1,1);
\end{scope}
\end{scope}
\scoped[on background layer]{\node [fill=gray!25!blue, fit=(n) (n1)] {};}
\end{tikzpicture}
\end{document}