控制图像包含中的矩形坐标

控制图像包含中的矩形坐标

我正在处理一个文档,其中我想包含一些图像,并可以选择在图像上绘制一个矩形。我创建了一个命令,\includegraphicsWithOptionalRectangle它接受两个参数:图像文件的路径和一个可选参数,用于指定是否绘制矩形。如果将可选参数设置为Rect,则会在图像上绘制一个红色矩形。

代码:

\documentclass{article}
\usepackage{tikz}
\usepackage{ifthen}

\newcommand{\includegraphicsWithOptionalRectangle}[2][noRect]
{
    \begin{tikzpicture}
        \node[anchor=south west, inner sep=0] (image) at (0,0) {\includegraphics[width=1\textwidth]{#2}};
        \begin{scope}[x={(image.south east)},y={(image.north west)}]
                \ifthenelse{\equal{#1}{Rect}}
                {
                    % Define rectangle coordinates
                    \coordinate (lowerleft) at (0.72,0.89); % Adjust these coordinates as needed
                    \coordinate (upperright) at (0.55,0.75); % Adjust these coordinates as needed
                    % Draw rectangle
                    \draw[red] (lowerleft) rectangle (upperright);
                }
                {
                    % Draw no rectangle
                }
        \end{scope}
    \end{tikzpicture}
}

\begin{document}
    
    % Image with no Rectangle (default):
    \includegraphicsWithOptionalRectangle{example-image}
    
    % Image with Rectangle (controlled coordinates):
    \includegraphicsWithOptionalRectangle[Rect]{example-image}
    
\end{document}

输出:

在此处输入图片描述

问题

当可选参数设置为时,我该如何控制矩形的lowerleft和角的坐标?我希望能够根据图像和矩形的所需位置动态指定这些坐标。任何实现此目的的建议或改进都将不胜感激。谢谢!upperrightRect

答案1

这可以通过 轻松实现xparse。将 的星号版本定义\myincludegraphics为默认版本includegraphics,不绘制矩​​形。然后非星号版本将有两个可选参数来指定矩形的坐标。第一个将是总宽度和高度的一小部分的左下角位置。第二个将是总宽度和高度的一小部分的右上角位置。这里 1 将是整个宽度和高度,默认情况下将为整个图像绘制矩形。以下是代码和示例:

\documentclass{article}
\usepackage{tikz}

\NewDocumentCommand{\myincludegraphics}{s O{0,0} O{1,1} m}{%
\IfBooleanTF{#1}{%
\noindent\includegraphics[width=1\textwidth]{#4}%
}{%
\begin{tikzpicture}
\node[anchor=south west, inner sep=0] (image) at (0,0) {\includegraphics[width=1\textwidth]{#4}};
\begin{scope}[x={(image.south east)},y={(image.north west)}]
\draw[red] (#2) rectangle (#3);
\end{scope}
\end{tikzpicture}%
}}

\begin{document}
\myincludegraphics*{example-image}
\myincludegraphics{example-image}
\myincludegraphics[0.25,0.35][0.75,0.65]{example-image}
\end{document}

在此处输入图片描述 在此处输入图片描述

相关内容