6

I have two picture, one (Image 1) is the big one while the other (Image 2) is the small one that is a detail of the big one. I would like to do something like the zoom option (with tikzpicture) but instead to have the zoomed image image I just want to see the other image. Everything inside a figure with its caption.

I made an example in case is difficult to understand what I want to do. enter image description here Image 1 is my main image, the cross represents the schematised detail that is explained with Image 2. The two images are two .png.

Is it possible?

8

Starting point. Now, you only need to connect the other anchors and decide the right position for the squares.

enter image description here

\documentclass{report}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[h]\centering
\begin{tikzpicture}
\node[draw] (one) at (0,0){\includegraphics[width=6cm]{example-image-a}};
\node[anchor=north,draw,inner sep=0pt] (two) at ([xshift=-1cm]one.north west){\includegraphics[width=1cm]{example-image-b}};
\node[draw] (rect) at (-1,0){};
\draw (two.south east) -- (rect.south west);
\end{tikzpicture}
\caption{text}
\end{figure}

\lipsum[2]
\end{document}
  • Does it exist an easy way to find the right position for the small square? Like an online tool that gives the relative coordinate of the main image using just the mouse pointer? – Shika93 Aug 21 '18 at 19:59
  • 1
    Mouse pointer is not good since usually the result is given in pixels. If you use Gimp (free) you can create a rectangle and see its coordinates in other units. Or use Imagemagick, which is lighter. – Sigur Aug 21 '18 at 21:54
  • Ok it doesn't matter, I made it in the old way. Thanks it's perfect! – Shika93 Aug 21 '18 at 22:37
6

A solution using path picture to clip the zoom.

And as @Sigur said 'Starting point. Now, you only need to connect the other anchors and decide the right position for the' circles.

\documentclass[a4paper, 12pt]{article}
\usepackage{mwe}
\usepackage{tikz}

\begin{document}

    \begin{figure}[h!]
        \centering
        \includegraphics[width=.7\linewidth]{example-image}
        \caption[Text for the list of figures]{Text under the figure}
        \label{fig:theReference0}
    \end{figure}

    \begin{figure}[h!]
        \centering
        \begin{tikzpicture}
            [path image/.style={path picture={\node at (path picture bounding box.center) {\includegraphics[height=3cm]{#1}};}}]

            \node (img) {\includegraphics[width=.7\linewidth]{example-image}};
            \node (c1) [draw, circle, red, text width=.7cm] at (img.center) {};
            \draw [red] (c1.east) -- (img.east);
            \draw [path image=example-image-a,draw=red,thick] (img.east) circle (2cm);
        \end{tikzpicture}
        \caption[Text for the list of figures]{Text under the figure}
        \label{fig:theReference}
    \end{figure}
\end{document}

enter image description here

  • + Capitalizing the "a" to emphasize magnification – Carel Aug 21 '18 at 20:49
1

With picture environment:

\documentclass{article}

\usepackage{graphicx}

\begin{document}

\noindent%
\setlength{\unitlength}{\textwidth}%
\begin{picture}(1,0.5)%
    \put(0.3,0){\includegraphics[width=.7\textwidth]{example-image}}%
    \put(0,0.33){\includegraphics[width=.2\textwidth]{example-grid-100x100bp}}%
    \put(0.0,0.33){\line(4,-1){.4}}
    \put(0.0,0.53){\line(4,-1){.4}}
    \put(0.2,0.33){\line(4,-1){.4}}
    \put(0.2,0.53){\line(4,-1){.4}}
    \put(0.4,0.23){\line(1,0){.2}}
    \put(0.4,0.43){\line(1,0){.2}}
    \put(0.4,0.23){\line(0,1){.2}}
    \put(0.6,0.23){\line(0,1){.2}}
\end{picture}%

\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.