【发布时间】:2012-07-27 23:07:39
【问题描述】:
问题说明了一切。是否存在包含具有不同 dpi(每英寸点数)图像的 PDF 文档?
或者假设如果我知道一张图像的 dpi,我就知道整个文档?
【问题讨论】:
问题说明了一切。是否存在包含具有不同 dpi(每英寸点数)图像的 PDF 文档?
或者假设如果我知道一张图像的 dpi,我就知道整个文档?
【问题讨论】:
我赞成@ypnos 的回答,这是完全正确的。
但我想通过展示pdfimages 实用程序的一个最近的新功能来补充它。
pdfimages 以前已知能够从 PDF 文件中提取图像(这是它唯一有用的用途)。 但是,现在您也可以使用它来调查有关所使用图像的更多详细信息,而无需提取它们。
使用下一个命令,我使用新的-list 参数查询某个 PDF 文件第 7 页和第 8 页上所有图像的数据:
注意,但是:pdfimages 的这个版本是来自 Poppler 的版本(来自 XPDF 的版本不(还没有?)支持这个新功能):
pdf图像-版本
pdf图像版本 0.20.2
版权所有 2005-2012 Poppler 开发者 - http://poppler.freedesktop.org
版权所有 1996-2011 Glyph & Cog, LLC
-list 选项首次出现在 2012 年 3 月 1 日发布的 Poppler v0.19.0 中。
现在,上面的列表并没有直接告诉您图像的分辨率(“dpi”)。该值取决于:此图像在 PDF 页面上呈现的尺寸是多少?
PDF 可以很容易地在 PDF 文件的不同位置使用相同的图像,在每种情况下使用不同的渲染大小。图像只需嵌入到 PDF 中一次,但可以多次“通过引用”使用/渲染(低效构造的 PDF 可能仍会多次包含相同的图像,但这是不同的主题......)
现在让我们弄清楚查看各个列标题可能产生的问题。它们是什么意思?
page
num
type
image(不透明图像)、mask(单色图像蒙版)、smask(软蒙版图像)和stencil(用于绘制颜色或图案的单色蒙版图像)。 注意: PDF 中图像的透明度是通过使用两个单独的 PDF 对象创建的:一个用于图像,一个用于遮罩或 smask。属于透明图像的遮罩/遮罩总是直接跟在列表中的图像之后。
width
height
color
gray、rgb、cmyk、lab (L*a*b)、icc(基于 ICC)、index(索引颜色)、sep(分离)和@ 987654344@(设备 N)。comp
bpc
enc
image(光栅图像——可以在内部使用通用的/Flate 或/LZW 压缩,但不是特殊的图像编码)、jpeg(JPEG 压缩)、jpx(JPEG2000 压缩) 、jbig2(JBIG2 压缩)和ccitt(传真压缩)。interp
yes。object ID
从 Poppler v0.25.0(2013 年 12 月 11 日发布)及更高版本开始,命令 pdfimages -list 现在包含新列,这些列指示自动计算的 x-ppi(水平)和 y-ppi(垂直)分辨率PDF 渲染器在 PDF 页面中显示的嵌入图像。
此外,还指出了每个图像(未压缩时)使用的大小(以字节/千字节为单位)及其大小压缩比(嵌入在 PDF 中)。
显示与上述相同文件的结果(使用 Poppler v0.42.0):
page num type width height color comp bpc enc interp objectID x-ppi y-ppi size ratio
------------------------------------------------------------------------------------
7 0 image 581 838 rgb 3 8 jpeg no 39 0 73 73 2107B 0.1%
7 1 image 4 4 rgb 3 8 image no 40 0 150 150 54B 112%
7 2 image 314 332 rgb 3 8 jpx no 44 0 150 150 19.0K 6.2%
7 3 image 358 430 rgb 3 8 jpx no 45 0 150 150 15.7K 3.5%
7 4 image 4 4 rgb 3 8 image no 46 0 150 150 62B 129%
7 5 image 4 4 rgb 3 8 image no 47 0 150 150 51B 106%
7 6 image 4 6 rgb 3 8 image no 48 0 150 150 62B 86%
7 7 image 596 462 rgb 3 8 jpx no 49 0 150 150 40.7K 5.0%
7 8 image 4 6 rgb 3 8 image no 50 0 150 150 86B 119%
7 9 image 4 4 rgb 3 8 image no 51 0 150 150 62B 129%
7 10 image 8 10 rgb 3 8 image no 41 0 150 150 157B 65%
7 11 image 6 6 rgb 3 8 image no 42 0 150 150 82B 76%
7 12 image 113 27 rgb 3 8 jpx no 43 0 151 152 1090B 12%
8 13 image 582 839 gray 1 8 jpeg no 2080 0 72 72 319B 0.1%
8 14 image 344 364 gray 1 8 jpx no 2079 0 150 150 4325B 3.5%
x-ppi
y-ppi
size
ratio
【讨论】:
pdfimages 0.26.5 在稳定版中,它还打印字段x-ppi 和y-ppi。
pdfimages 的最新版本的信息。 (我知道这些,可以看到 my more recent answer from 2015 here...)我将在我对这些影响的答案中添加更新......
答案是肯定的。 DPI 在每个嵌入的图像中都是独立的。
将所有图像的 DPI 重新计算到上限(如果 DPI 之前较低,则保持不变)是某些 DTP 程序的唯一常用技术。但这是可选的。顺便说一句,您还可以将(未更改的)PDF嵌入到PDF中;在这个阶段,你失去了所有可以做出的假设。
【讨论】:
使用 Do 运算符绘制图像。传递给此运算符的操作数是图像的名称。图片名称在当前页面的资源字典中查找。图像资源具有宽度(像素列数)和高度(像素行数)。 PDF 页面上显示的图像的物理宽度和高度由 Do 运算符时的 CTM(当前变换矩阵)值确定。如果 CTM 等于单位矩阵,则物理宽度和高度将为 1 pt 高和 1 pt 宽。 (1 磅等于 1/72 英寸)。通常,CTM 具有将 1x1 pt 正方形转换为更大图像的非恒等值。像素行数和像素列数以及图像的物理扩展决定了图像在 PDF 页面上显示时的分辨率。
示例:图像资源由 300 像素行组成。每行由 400 个像素组成。 CTM 等于 [400 0 0 300 100, 100]。图像高度为 300 pts,图像宽度为 400 pts。所以两个方向的分辨率都是 72 dpi。
简而言之:PDF 规范允许 PDF 包含各种分辨率的图像。
【讨论】: