由獨立文檔類別產生的 TikZ 圖片的 PNG 圖片尺寸錯誤

由獨立文檔類別產生的 TikZ 圖片的 PNG 圖片尺寸錯誤

考慮下面的 LaTeX 手稿,它使用standalone文件類別來產生圖片PDFPNG圖像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}

結果PDF圖像是(這是螢幕截圖):

產生的 PDF 影像

結果PNG影像是:

生成的 PNG 圖像

為什麼PNG圖像有不同,以及錯誤的,尺寸比PDF文件?

答案1

從概念上講,點陣圖沒有大小,只有像素數。正如手冊中所述,standalone課程講述convert我們假設 300dpi 可以產生用於列印的高解析度影像,但實際上 pdftex 的預設影像解析度是 72dpipng 檔案可以儲存其像素的預期大小但大多數系統不使用該提示,即使不使用,也並非所有系統都使用該提示。

所以無論是

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

或者

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

大小將與

 \fbox{\includegraphics{file.pdf}}

答案2

不,不是的。這取決於你如何衡量它。

在 MS Word 中測量:

Word 中放置三種不同解析度的圖片:

在此輸入影像描述

列印時:

在此輸入影像描述

在 LaTeX 中測量:

代碼:

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

PDF 檢視器 100% 縮放的螢幕上的測量:

在此輸入影像描述

網頁測量:

您不能依賴在網頁瀏覽器上看到的 PNG 的大小,因為它們處理圖像的方式不同(看這裡

1200 dpi 的 JPEG 影像上傳到 Imgur 並透過網頁瀏覽器檢視:

在此輸入影像描述

300 dpi 的 PNG 圖像上傳到 Imgur 並透過網頁瀏覽器檢視:

在此輸入影像描述

50 dpi 的 JPEG 影像上傳到 Imgur 並透過網頁瀏覽器檢視:

在此輸入影像描述

如果您想在網頁瀏覽器上看到正確的尺寸,則需要使用正確的 dpi 來產生 PNG。請參考以下練習:

我的螢幕是 2560x1440。

螢幕水平尺寸為:約23.5英寸

螢幕解析度為 2560 點/23.5 吋 = 每吋 109 點

我產生了一個 dpi 約 110 的 PNG。

我使用網頁瀏覽器測量螢幕上的水平尺寸:

在此輸入影像描述

答案3

使用standalone手冊(v1.2 - 2015/07/15)解釋了為什麼生成的PNG圖像沒有預期的物理尺寸,並且還提供了正確設定這些尺寸的方法。

為什麼 PNG 圖像的物理尺寸錯誤

根據第 4.6.1 頁「轉換設定」一節。 15

使用以下預設設定:[...] 密度為 300dpi

「dpi」是「每吋點數」的縮寫,也稱為「每吋像素數」(“ppi”)。為了在螢幕上顯示時具有正確的尺寸,用於產生 PNG 的 ppi 必須等於螢幕的 ppi。

要了解您螢幕的 ppi,請按照這個簡單的方法維基百科上給出的像素密度頁。此方法包括使用固定在螢幕上的尺來測量已知由一定數量的像素組成的線的長度。

如何確保PNG影像具有正確的物理尺寸

第 1 頁的表 1圖 17 建議了兩種方法來確保產生的 PNG 影像具有所需的物理尺寸。兩種方法都包括為convert文檔類別選項指派一個值,如下所示:

\documentclass[tikz,convert={...}]{standalone}
  1. 設置convert={density=<d>}<d>你的螢幕的 ppi 在哪裡。

  2. 設置convert={size=<w>x<h>},其中<w>x<h>是已知在螢幕上顯示時具有所需物理尺寸的 PNG 圖像的像素尺寸。

    在本例中,由於您聲明 PDF 圖片的螢幕截圖具有正確的物理尺寸,因此請使用其像素尺寸,即 137x50。如果您使用 macOS,可以直接從 Finder 讀取這些內容。

相關內容