首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查PDF页面的分辨率(DPI)的嵌入式图像?

如何检查PDF页面的分辨率(DPI)的嵌入式图像?
EN

Stack Overflow用户
提问于 2015-01-14 08:25:04
回答 2查看 6.2K关注 0票数 1

是否有任何免费的库,可以用来获得PDF文件所包含的新闻部图像的分辨率?

我使用PDFSharp尝试了以下代码,但是它返回的DPI是不正确的。例如,它显示了96dpi,而应该是150 For:

代码语言:javascript
复制
using (PdfDocument pdf = PdfReader.Open(sourcePdf))
{
    for (int i = 0; i < pdf.Pages.Count; i++)
    {
        XGraphics xGraphics = XGraphics.FromPdfPage(pdf.Pages[i]);
        float dpi = xGraphics.Graphics.DpiX; 
    }
}
EN

回答 2

Stack Overflow用户

发布于 2015-01-14 12:03:36

您可以使用命令行工具获取所需的信息:pdfimages.

但是,您需要一个基于pdfimages的最新版本的波普尔图书馆 (而不是,也就是基于XPDF的“pdfimages”!)

最近的Poppler版本允许您使用-list选项:

代码语言:javascript
复制
pdfimages -list -f 2 -l 4 my.pdf

上面示例命令的输出显示页面中的所有图像,从2 (f irst page to example )到4 (l ast page to show)不等。

下面是上面命令的输出,使用我专门为这个问题准备的示例PDF文件(水平滚动以查看所有列):

代码语言:javascript
复制
page num  type width height color comp bpc  enc interp object ID x-ppi y-ppi size ratio
---------------------------------------------------------------------------------------
   2   0 image   697  1238  gray    1   8  jpeg   no       16  0   320   320  142K  17%
   3   1 image   697  1238  gray    1   8  jpeg   no       16  0   151   151  142K  17%
   4   2 image   697  1238  gray    1   8  jpeg   no       16  0    84   115  142K  17%

输出如下:

  1. 三页2-4页有三张图片(如1+2、headed pagenum列所示)。
  2. 所有三个图像的PDF对象ID都是相同的:16 0 (如11+12列所示,标题为object + ID)。这意味着PDF只定义了一个不同的对象,但显示了三次(即图像只嵌入一次,但显示在3页上)。
  3. 图像宽度为697像素,高度为1238像素,图像深度(每色比特)为8,颜色空间为gray,颜色通道/分量数为1,压缩方案为jpeg,其字节大小(作为嵌入式)为142K,压缩速率为17% (由列4-9和14+15 headed width指示,heightcolorcompbpcD39和ratio)。
  4. 然而,相同的图像以不同的分辨率出现在不同的页面上(以PPI -每英寸像素--而不是DPI):
代码语言:javascript
复制
- page 2 shows it with a PPI of `320` in both directions, 
- page 4 shows it with a PPI of `151` in both directions,
- while page 3 shows it with a PPI of `84` in horizontal (X) direction and `115` PPI in vertical (Y) direction.

现在,如果命令行工具不能被重新用于您的目标:作为上面所示工具的基础的Poppler库当然是免费的(“自由中的自由”,以及“在啤酒中的自由”)。

下面是一个),用于演示上面命令的输出。

票数 3
EN

Stack Overflow用户

发布于 2015-01-14 08:30:28

PDF不一定在定义中使用DPI。PDF允许文档创建者定义自己的用户坐标空间,该空间可能映射到或不映射到任何类似于每英寸点的位置。

来自这里:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27938551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档