Anotar imágenes usando tikz; ¿La decoración desaparece por encima de cierto ancho de imagen?

Anotar imágenes usando tikz; ¿La decoración desaparece por encima de cierto ancho de imagen?

Estoy intentando anotar una imagen usando tikz. De alguna manera, hay algún comportamiento que no entiendo. Dibujo una decoración al final de la línea de anotación que no es más que un círculo. La decoración se define mediante un tikzset. Nada especial hasta ahora. Sin embargo, hay algo que hace que la decoración desaparezca cuando intento anotar imágenes con un ancho determinado de más de 7 cm. Aquí hay un MWE (con suerte mínimo) de lo que estoy hablando, probado en el dorso:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}

\tikzset{
    o/.style={
        shorten >=#1,
        decoration = {
            markings,
            mark={
                at position 1
                with {
                    \draw circle [radius=#1];   
                }
            }   
        },
        postaction = decorate,
    },
    o/.default=2pt
}

\begin{document}
  \begin{tikzpicture}
    \node[anchor=south west,inner sep=0] (image) at (0,0,0){
        \includegraphics[width=7cm]{frog}   %%% works with a picture width of 7cm
    };
    \begin{scope}[x={(image.south east)},y={(image.north west)}]
      \draw[o,>=stealth,shorten <= 2mm, line width=0.5mm] (-0.25,1.25) node {Frog} to[out=-90] (0.41,0.6);
    \end{scope}
  \end{tikzpicture}

  \begin{tikzpicture}
    \node[anchor=south west,inner sep=0] (image) at (0,0,0){
      \includegraphics[width=8cm]{frog} %%% circle vanishes with a picture width of 8cm
    };
    \begin{scope}[x={(image.south east)},y={(image.north west)}]
      \draw[o,>=stealth,shorten <= 2mm, line width=0.5mm] (-0.25,1.25) node {Frog} to[out=-90] (0.41,0.6);
    \end{scope}
  \end{tikzpicture}
\end{document}

La primera imagen tiene un ancho de 7 cm. Allí todavía está dibujado el círculo al final \draw. En la segunda imagen cuyo ancho está establecido en 8 cm (la única diferencia), el círculo ya no se dibuja.

Realmente me gustaría entender por qué sucede esto y cómo evitarlo o solucionarlo.

Respuesta1

No puedo obtener un círculo al final de la línea en ningún tamaño de imagen. No examiné por qué, sino que escribí un código nuevo para líneas, en mi opinión mucho más simple, que señalaba una rana en la imagen. En él uso dos bibliotecas: arrows.metapara el círculo al final de la línea y positioningpara determinar las coordenadas de la línea:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, positioning}

\tikzset{line/.style={-{Circle[open,length=#1]},shorten <= 2mm, line width=0.5mm},
         line/.default=5pt}

\begin{document}
  \begin{tikzpicture}
    \node[anchor=north west,inner sep=0] (image) at (0,0,0){
        \includegraphics[width=3cm]{example-image-a}};
    \coordinate[above left=0.25 and 1.25 of image]         (a);
    \coordinate[above left=0.25 and 1.25 of image.center]  (b);
    \draw[line] (a) node {Frog} to[out=-90] (b);
  \end{tikzpicture}

\bigskip
  \begin{tikzpicture}
    \node[anchor=north west,inner sep=0] (image) at (0,0,0){
      \includegraphics[width=8cm]{example-image-b}};
    \coordinate[above left=0.25 and 1.25 of image]         (a);
    \coordinate[above left=0.60 and 0.41 of image.center]   (b);
    \draw[line] (a) node {Frog} to[out=-90] (b);
  \end{tikzpicture}
\end{document}

lo que da: ingrese la descripción de la imagen aquí

información relacionada