Das PNG-Bild eines TikZ-Bildes, das von der eigenständigen Dokumentklasse generiert wird, hat die falschen Abmessungen

Das PNG-Bild eines TikZ-Bildes, das von der eigenständigen Dokumentklasse generiert wird, hat die falschen Abmessungen

Betrachten Sie das folgende LaTeX-Manuskript, das die standaloneDokumentklasse verwendet, um sowohl ein PDFals auch ein PNGBild zu generieren TikZ.

\documentclass[tikz,convert]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) -- (1,1)
   [rounded corners] -- (2,0) -- (3,1)
   [sharp corners] -- (3,0) -- (2,1);
\end{tikzpicture}
\end{document}

Das resultierende PDFBild ist (dies ist ein Screenshot):

Das resultierende PDF-Bild

Das resultierende PNGBild ist:

Das resultierende PNG-Bild

Warum PNGhat das Bild verschiedene, undfalsch, Abmessungen als die PDFDatei?

Antwort1

Konzeptionell haben Bitmaps keine Größe, sondern nur eine Anzahl von Pixeln. Wie im standaloneHandbuch dokumentiert, sagt die Klasse, convertdass 300 dpi angenommen werden sollen, was ein hochauflösendes Bild für den Druck ergibt, aber die Standardbildauflösung für pdftex beträgt tatsächlich 72 dpiPNG-Dateien können eine bestimmte Größe für ihre Pixel speichernAber die meisten tun dies nicht und selbst wenn nicht, verwenden alle Systeme den Hinweis.

also entweder

  \fbox{\includegraphics[scale=.24]{file.png}}% 72/300=.24

oder

 {\pdfimageresolution=300 \fbox{\includegraphics{file.png}}}

wird die gleiche Größe haben wie

 \fbox{\includegraphics{file.pdf}}

Antwort2

Nein, das ist nicht der Fall. Es kommt darauf an, wie man es misst.

Messen in MS Word:

Drei Bilder mit unterschiedlicher Auflösung in Word eingefügt:

Bildbeschreibung hier eingeben

Beim Drucken:

Bildbeschreibung hier eingeben

Messen in LaTeX:

Der Code:

    \documentclass[]{standalone}
    \usepackage{graphics}
    \begin{document}
    \noindent
    \includegraphics{aaa.pdf}
    \includegraphics{aaa.png}
    \end{document}

Messung am Bildschirm bei 100% Zoom des PDF-Viewers:

Bildbeschreibung hier eingeben

Messung auf der Webseite:

Sie können sich nicht auf die Größe des PNG verlassen, das Sie in einem Webbrowser sehen, da Bilder dort unterschiedlich verarbeitet werden (siehe hier)

JPEG-Bild mit 1200 dpi, auf Imgur hochgeladen und über einen Webbrowser angezeigt:

Bildbeschreibung hier eingeben

PNG-Bild mit 300 dpi. Auf Imgur hochgeladen und über einen Webbrowser angezeigt:

Bildbeschreibung hier eingeben

JPEG-Bild mit 50 dpi. Auf Imgur hochgeladen und über einen Webbrowser angezeigt:

Bildbeschreibung hier eingeben

Wenn Sie die korrekte Größe in Ihrem Webbrowser sehen möchten, müssen Sie Ihr PNG mit der richtigen dpi-Zahl generieren. Siehe die folgende Übung:

Mein Bildschirm hat eine Auflösung von 2560 x 1440.

Horizontale Bildschirmdiagonale: ca. 23,5 Zoll

Die Bildschirmauflösung beträgt 2560 Punkte/23,5 Zoll = 109 Punkte pro Zoll

Ich habe ein PNG mit einer dpi von ungefähr 110 erstellt.

Ich messe die horizontale Dimension auf dem Bildschirm mit einem Webbrowser:

Bildbeschreibung hier eingeben

Antwort3

Das standaloneBenutzerhandbuch (v1.2 – 15.07.2015) erklärt, warum das generierte PNG-Bild nicht die erwarteten physikalischen Abmessungen hat, und bietet auch Methoden, um diese Abmessungen richtig einzustellen.

Warum das PNG-Bild die falschen physikalischen Abmessungen hat

Gemäß Abschnitt 4.6.1 „Konvertierungseinstellungen“ auf S. 15

Es werden folgende Standardeinstellungen verwendet: [...] eine Dichte von 300 dpi

„dpi“ ist die Abkürzung für „dot per inch“, also „Pixel pro Zoll“ („ppi“). Um die richtigen Abmessungen bei der Anzeige auf Ihrem Bildschirm zu erhalten, muss die zur Generierung des PNG verwendete ppi-Zahl mit der Ihres Bildschirms übereinstimmen.

Um die ppi-Zahl Ihres Bildschirms zu ermitteln, folgen Siediese einfache Methodegegeben auf Wikipedia'sPixeldichteSeite. Die Methode besteht darin, mit einem Lineal die Länge einer Linie zu messen, von der bekannt ist, dass sie aus einer bestimmten Anzahl von Pixeln besteht.

So stellen Sie sicher, dass das PNG-Bild die richtigen physikalischen Abmessungen hat

Tabelle 1 auf S. 17 schlägt zwei Methoden vor, um sicherzustellen, dass das generierte PNG-Bild die gewünschten physikalischen Abmessungen hat. Beide Methoden bestehen darin, der convertDokumentklassenoption wie folgt einen Wert zuzuweisen:

\documentclass[tikz,convert={...}]{standalone}
  1. Stellen Sie ein convert={density=<d>}, wo <d>die ppi Ihres Bildschirms liegt.

  2. Legen Sie fest convert={size=<w>x<h>}, wobei <w>x<h>die Pixelmaße eines PNG-Bildes sind, von dem bekannt ist, dass es bei der Anzeige auf Ihrem Bildschirm die gewünschten physikalischen Abmessungen hat.

    Da Sie im vorliegenden Fall angegeben haben, dass der Screenshot des PDF-Bildes die richtigen physikalischen Abmessungen hat, verwenden Sie seine Pixelabmessungen, nämlich 137 x 50. Wenn Sie macOS verwenden, können diese direkt vom Finder gelesen werden.

verwandte Informationen