Ottenere le misure di un’immagine

  • Creatore
    Topic
  • #41454
    Up
    0
    Down
    ::


    Ciao a tutti,
    ho un dubbio che mi incuriosisce da moltissimo tempo.

    Immaginiamo di voler includere un’immagine all’interno di un documento:

    `\documentclass{minimal}

    \usepackage{graphicx}

    \begin{document}

    \includegraphics{grafico}

    \end{document}`
    esiste un modo per scoprire quali sono la lunghezza e l’altezza reali di questa immagine? Mi rendo conto che il termine «reali» è un po’ fuorviante, dal momento che uno potrebbe sempre giocare con «width» e con «scale», ma in linea di principio due file grafici differenti (di tipo PDF, JPEG O PNG) inclusi nello stesso documento così come sono, senza opzioni, hanno dimensioni differenti. Quello che sto cercando sono delle macro che possano essere richiamate in modo simile a \the\paperwidth, in modo da poter eventualmente fare dei calcoli in un momento successivo.

    Grazie e a presto.

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #41455
      Up
      0
      Down
      ::

      Ciao a tutti,
      ho un dubbio che mi incuriosisce da moltissimo tempo.

      Immaginiamo di voler includere un’immagine all’interno di un documento:

      `\documentclass{minimal}

      \usepackage{graphicx}

      \begin{document}

      \includegraphics{grafico}

      \end{document}`
      esiste un modo per scoprire quali sono la lunghezza e l’altezza reali di questa immagine? Mi rendo conto che il termine «reali» è un po’ fuorviante, dal momento che uno potrebbe sempre giocare con «width» e con «scale», ma in linea di principio due file grafici differenti (di tipo PDF, JPEG O PNG) inclusi nello stesso documento così come sono, senza opzioni, hanno dimensioni differenti. Quello che sto cercando sono delle macro che possano essere richiamate in modo simile a \the\paperwidth, in modo da poter eventualmente fare dei calcoli in un momento successivo.

      `\newsavebox{\calcbox}
      \sbox\calcbox{\includegraphics{grafico}}`
      La larghezza e l’altezza dell’immagine sono disponibili come \wd\calcbox e \ht\calcbox.

      Ciao
      Enrico

    • #41456
      Up
      0
      Down
      ::


      Grazie per la risposta. Mi ero dimenticato di specificare che preferivo il risultato espresso in centimetri, ma su questa cosa ci torno più avanti.

      Venendo alla tua soluzione, immagino che quelle grandezze vadano richiamate in questo modo:

      `\documentclass{minimal}

      \usepackage{graphicx}

      \begin{document}

      \newsavebox{\calcbox}
      \sbox\calcbox{\includegraphics{grafico}}

      Larghezza: \the\wd\calcbox

      Altezza: \the\ht\calcbox.

      \end{document}`
      Mentre aspettavo una risposta, ho fatto un po’ di ricerche in rete e ho trovato una soluzione anch’io:

      `\documentclass{minimal}

      \usepackage{graphicx}

      \begin{document}

      \newlength{\larghezza}
      \settowidth{\larghezza}{\includegraphics{grafico}}

      \newlength{\altezza}
      \settoheight{\altezza}{\includegraphics{grafico}}

      Larghezza: \the\larghezza

      Altezza: \the\altezza.

      \end{document}`
      Per quanto riguarda l’avere il risultato espresso in centimetri, ho trovato due strade molto simili, che di seguito applico alla tua soluzione: la prima

      `\documentclass{minimal}

      \usepackage{layouts}
      \usepackage{graphicx}

      \begin{document}

      \newsavebox{\calcbox}
      \sbox\calcbox{\includegraphics{grafico}}

      Larghezza: \printinunitsof{cm}\prntlen{\wd\calcbox}

      \end{document}`
      e la seconda

      `\documentclass{minimal}

      \usepackage{printlen}
      \usepackage{graphicx}

      \begin{document}

      \newsavebox{\calcbox}
      \sbox\calcbox{\includegraphics{grafico}}

      Larghezza: \uselengthunit{cm}\printlength{\wd\calcbox}

      \end{document}`
      Credo comunque che entrambi i metodi arrotondino un po’; infatti, se faccio l’imbroglione e scrivo

      `\documentclass{minimal}

      \usepackage{printlen}
      \usepackage{graphicx}

      \begin{document}

      \newsavebox{\calcbox}
      \sbox\calcbox{\includegraphics[width=3cm]{grafico}}

      Larghezza: \uselengthunit{cm}\printlength{\wd\calcbox}

      \end{document}`
      Ottengo come risultato 2.99957cm.

      Grazie comunque lo stesso.

    • #41457
      Up
      0
      Down
      ::

      Grazie per la risposta. Mi ero dimenticato di specificare che preferivo il risultato espresso in centimetri, ma su questa cosa ci torno più avanti.

      Venendo alla tua soluzione, immagino che quelle grandezze vadano richiamate in questo modo:

      `\documentclass{minimal}

      \usepackage{graphicx}

      \begin{document}

      \newsavebox{\calcbox}
      \sbox\calcbox{\includegraphics{grafico}}

      Larghezza: \the\wd\calcbox

      Altezza: \the\ht\calcbox.

      \end{document}`
      Mentre aspettavo una risposta, ho fatto un po’ di ricerche in rete e ho trovato una soluzione anch’io:

      `\documentclass{minimal}

      \usepackage{graphicx}

      \begin{document}

      \newlength{\larghezza}
      \settowidth{\larghezza}{\includegraphics{grafico}}

      \newlength{\altezza}
      \settoheight{\altezza}{\includegraphics{grafico}}

      Larghezza: \the\larghezza

      Altezza: \the\altezza.

      \end{document}`
      Per quanto riguarda l’avere il risultato espresso in centimetri, ho trovato due strade molto simili, che di seguito applico alla tua soluzione: la prima

      `\documentclass{minimal}

      \usepackage{layouts}
      \usepackage{graphicx}

      \begin{document}

      \newsavebox{\calcbox}
      \sbox\calcbox{\includegraphics{grafico}}

      Larghezza: \printinunitsof{cm}\prntlen{\wd\calcbox}

      \end{document}`
      e la seconda

      `\documentclass{minimal}

      \usepackage{printlen}
      \usepackage{graphicx}

      \begin{document}

      \newsavebox{\calcbox}
      \sbox\calcbox{\includegraphics{grafico}}

      Larghezza: \uselengthunit{cm}\printlength{\wd\calcbox}

      \end{document}`
      Credo comunque che entrambi i metodi arrotondino un po’; infatti, se faccio l’imbroglione e scrivo

      `\documentclass{minimal}

      \usepackage{printlen}
      \usepackage{graphicx}

      \begin{document}

      \newsavebox{\calcbox}
      \sbox\calcbox{\includegraphics[width=3cm]{grafico}}

      Larghezza: \uselengthunit{cm}\printlength{\wd\calcbox}

      \end{document}`
      Ottengo come risultato 2.99957cm.

      Grazie comunque lo stesso.

      Tutto corretto. Gli “arrotondamenti” sono inevitabili. A che ti serve?

      Ciao
      Enrico

Visualizzazione 2 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top