【问题标题】:Can a PDF document contain images with different DPI?PDF 文档可以包含具有不同 DPI 的图像吗?
【发布时间】:2012-07-27 23:07:39
【问题描述】:

问题说明了一切。是否存在包含具有不同 dpi(每英寸点数)图像的 PDF 文档?

或者假设如果我知道一张图像的 dpi,我就知道整个文档?

【问题讨论】:

    标签: pdf dpi poppler


    【解决方案1】:

    我赞成@ypnos 的回答,这是完全正确的。

    但我想通过展示pdfimages 实用程序的一个最近的新功能来补充它。

    pdfimages 以前已知能够从 PDF 文件中提取图像(这是它唯一有用的用途)。 但是,现在您也可以使用它来调查有关所使用图像的更多详细信息,而无需提取它们。

    使用下一个命令,我使用新的-list 参数查询某个 PDF 文件第 7 页和第 8 页上所有图像的数据:

    pdfimages -list -f 7 -l 8 ct-magazin-14-2012.pdf 页面编号类型宽度高度颜色comp bpc enc interp 对象ID -------------------------------------------------- ------------------ 7 0 图像 581 838 rgb 3 8 jpeg no 39 0 7 1 图像 4 4 RGB 3 8 图像编号 40 0 7 2 图像 314 332 RGB 3 8 jpx 无 44 0 7 3 图像 358 430 RGB 3 8 jpx 无 45 0 7 4 图像 4 4 RGB 3 8 图像编号 46 0 7 5 图像 4 4 RGB 3 8 图像编号 47 0 7 6 图像 4 6 RGB 3 8 图像编号 48 0 7 7 图像 596 462 RGB 3 8 jpx 无 49 0 7 8 图像 4 6 RGB 3 8 图像编号 50 0 7 9 图像 4 4 RGB 3 8 图像编号 51 0 7 10 图像 8 10 RGB 3 8 图像编号 41 0 7 11 图像 6 6 RGB 3 8 图像编号 42 0 7 12 图像 113 27 RGB 3 8 jpx 无 43 0 8 13 图像 582 839 灰色 1 8 jpeg no 2080 0 8 14 图像 344 364 灰色 1 8 jpx 无 2079 0

    注意,但是: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

    • 包含图像的 PDF 中的页码。

    num

    • 当前列表的图像编号。

    type

    • 图像类型。可能的值为:image(不透明图像)、mask(单色图像蒙版)、smask(软蒙版图像)和stencil(用于绘制颜色或图案的单色蒙版图像)。 注意: PDF 中图像的透明度是通过使用两个单独的 PDF 对象创建的:一个用于图像,一个用于遮罩或 smask。属于透明图像的遮罩/遮罩总是直接跟在列表中的图像之后。

    width

    • 图像宽度(以像素为单位)。

    height

    • 图像高度(以像素为单位)。

    color

    • 图像色彩空间。可能的值为grayrgbcmyklab (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

    • 文件中图像的 PDF 对象 ID(带有“生成号”)。

    更新(2016 年 3 月)

    从 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

    • 在 PDF 页面上呈现时图像的水平分辨率(以每英寸像素为单位)。

    y-ppi

    • 在 PDF 页面上呈现时图像的垂直分辨率(以每英寸像素为单位)。

    size

    • PDF 文件中嵌入图像的大小。使用了以下后缀:“B”字节、“K”千字节、“M”兆字节和“G”千兆字节。

    ratio

    • 嵌入图像的压缩率。

    【讨论】:

    • 谢谢你,这对我帮助很大!
    • pdfimages 0.26.5 在稳定版中,它还打印字段x-ppiy-ppi
    • @FaheemMitha:感谢您修正我的回答中的错别字。也感谢您的评论,更新有关pdfimages 的最新版本的信息。 (我知道这些,可以看到 my more recent answer from 2015 here...)我将在我对这些影响的答案中添加更新......
    • 我希望我能给这个答案 1000 次投票,因为对每列含义的详细描述非常有帮助!
    • @CodingSamurai:您可以通过在我的近 1000 个您认为值得一票的答案中投票来弥补这一点,在接下来的 2-3 年内每天一个 :-) Naa,开个玩笑.. .
    【解决方案2】:

    答案是肯定的。 DPI 在每个嵌入的图像中都是独立的。

    将所有图像的 DPI 重新计算到上限(如果 DPI 之前较低,则保持不变)是某些 DTP 程序的唯一常用技术。但这是可选的。顺便说一句,您还可以将(未更改的)PDF嵌入到PDF中;在这个阶段,你失去了所有可以做出的假设。

    【讨论】:

      【解决方案3】:

      使用 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 包含各种分辨率的图像。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-07
        • 2013-04-11
        • 1970-01-01
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        相关资源
        最近更新 更多