这个问题说明了一切。是否有包含不同dpi图像的PDF文档(每英寸点数)?
或者假设如果我知道一张图片的dpi,我就知道整个文件了吗?
答案 0 :(得分:9)
我赞成@ypnos的回答,这是完全正确的。
但我想通过展示pdfimages
实用程序的最新新功能来补充它。
pdfimages
能够从PDF文件中提取图像(这是唯一有用的目的)。 但是,现在您还可以使用它来调查有关所用图像的更多详细信息,而无需提取它们。
使用下一个命令,我使用新的-list
参数查询某个PDF文件第7页和第8页上所有图像的数据:
pdfimages -list -f 7 -l 8 ct-magazin-14-2012.pdf page num type width height color comp bpc enc interp object ID --------------------------------------------------------------------- 7 0 image 581 838 rgb 3 8 jpeg no 39 0 7 1 image 4 4 rgb 3 8 image no 40 0 7 2 image 314 332 rgb 3 8 jpx no 44 0 7 3 image 358 430 rgb 3 8 jpx no 45 0 7 4 image 4 4 rgb 3 8 image no 46 0 7 5 image 4 4 rgb 3 8 image no 47 0 7 6 image 4 6 rgb 3 8 image no 48 0 7 7 image 596 462 rgb 3 8 jpx no 49 0 7 8 image 4 6 rgb 3 8 image no 50 0 7 9 image 4 4 rgb 3 8 image no 51 0 7 10 image 8 10 rgb 3 8 image no 41 0 7 11 image 6 6 rgb 3 8 image no 42 0 7 12 image 113 27 rgb 3 8 jpx no 43 0 8 13 image 582 839 gray 1 8 jpeg no 2080 0 8 14 image 344 364 gray 1 8 jpx no 2079 0
注意,但是:此版本的pdfimages
是来自Poppler的那个版本(来自XPDF的版本不(还有?)支持此新功能) :
pdfimages -version pdfimages version 0.20.2 Copyright 2005-2012 The Poppler Developers - http://poppler.freedesktop.org Copyright 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。属于透明图像的mask / smask总是直接跟随列表中的图像。 width
height
color
gray
,rgb
,cmyk
,lab
(L * a * b),icc
(基于ICC),index
(索引颜色),sep
(分离)和devn
(DeviceN)。 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页面中显示的每个嵌入图像。
此外,还显示了每个图像(未压缩时)使用的大小(以字节/ kB字节为单位)以及其大小压缩比(如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
强>
答案 1 :(得分:4)
答案是肯定的。 DPI在每个嵌入图像中都是独立的。
一些DTP程序的常用技术是将所有图像的DPI重新计算到上限(如果之前DPI较低,则保持不变)。但这是可选的。顺便说一下,你也可以将(未经修改的)PDF嵌入到PDF中;在这个阶段,你失去了所有可能做出的假设。
答案 2 :(得分:4)
使用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包含各种分辨率的图像。