转换为 PDF 时保留像素分辨率

转换为 PDF 时保留像素分辨率

我有一个 latex 文件,它将 tikz 输出叠加到 PNG 文件上。PNG 文件是一个 512x512 像素的图像,完美地表示来自外部数据集的栅格数据(通过颜色图)。tikz 文件在 PNG 文件中的像素组周围绘制矩形。这些框表示四叉树数据结构中的叶子。

使用 matplotlib,我可以生成具有正确尺寸(例如 4 英寸 x 4 英寸)和 DPI 的 PNG 文件,该文件可以准确显示光栅数据(128 DPI)。然后缩放 tikz 绘图以完美覆盖此图像。

但是问题是,当我在覆盖 tikz 的 latex 文档上使用 pdflatex 时,生成的 PDF 文件会模糊像素边界。我使用的是独立包,最终图像正好是 4 英寸 x 4 英寸(差不多),因此不应该进行任何缩放以适应某个固定的页面宽度。

这是我的 tikz 文件(为了清晰起见,已缩短...)。在 tikz 图像中,1 个单位 = 1/64 英寸,因此最终图像为 256/64 = 4 英寸。

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[x=0.015625in, y=0.015625in]
    \node (plot) at (128.0,128.0)
    {\includegraphics{plot_0004.png}};

    \draw [ultra thin] (0,0) rectangle (256,256);  % boundary box

    % Patch number 0
    \draw [ultra thin] (0,0) rectangle (16,16);

    % Patch number 1
    \draw [ultra thin] (16,0) rectangle (32,16);

    % ..... more rectangles ...

\end{tikzpicture}
\end{document}

以下是原始 PNG 图像的放大视图: 在此处输入图片描述

这是带有 tikz 覆盖的 PDF 文件的缩放图。此缩放图中的每个 tikz 矩形代表 PNG 文件中的 8x8 像素网格。 在此处输入图片描述

有什么方法可以保留 PNG 文件中的原始分辨率?我意识到我可以提高 PNG 文件的分辨率(例如,将其设置为 1024x1024),从而减少模糊,但这似乎没有必要,因为 512x512 恰好代表了我的数据。

我在 Preview.app 中查看 PNG 和 PDF。上面的图片是从 Preview 查看器截取的屏幕截图。因此,Preview 似乎能够以原始分辨率查看 PNG(可能是通过将其转换为内部 PDF 表示?)。为什么 Latex 不能做同样的事情?

答案1

看来问题实际上出在查看器上。我刚刚下载了 Adob​​e Reader(适用于 OSX),并加载了相同的图像,所有像素细节都清晰显示。事实上,Adobe 查看器比预览版有更多调整平滑度的选项(这并不奇怪!)。

这是 Adob​​e 中的同一图像(自定义 DPI 设置为 128):此图像也被抓取为 PNG 屏幕截图(与上面的相同)。

在此处输入图片描述

我以前并不认为模糊与观看者有什么关系,但现在我改变了看法!

相关内容