9

我有一个 ghostscript 命令,可以将 pdf 转换为几个 PNG 图像(每页一个)。命令参数如下:

-dNOPAUSE -q -r300 -sPAPERSIZE=a4 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dUseTrimBox -sDEVICE=png16m -dBATCH -sOutputFile="C:\outputfile%d.png" -c \"30000000 setvmthreshold\" -f "C:\inputfile.pdf"

pdf 在 Adob​​e Reader 中显示为常规 A4 页面,但在 PNG 图像中它变得很大(例如 2480 x 3507 像素)。

如果我将 ghostscript 命令中的分辨率更改为-r110页面大小是正确的,但图像质量非常粗糙。

有没有其他方法可以在不影响图像大小的情况下提高图像质量?

谢谢

4

4 回答 4

14

知道了!在我的 GS 命令中添加了以下参数:

-dDownScaleFactor=3

来自GS 文档

这会导致内部渲染在输出之前按给定(小整数)因子按比例缩小。例如,以下将从 300dpi 的内部渲染生成 200dpi 的输出 png:

 gs -sDEVICE=png16m -r600 -dDownScaleFactor=3 -o tiger.png\
      examples/tiger.png
于 2013-07-22T19:02:09.187 回答
3

我有一个类似的问题,其中使用 ghostscript 将 PDF 转换为 PNG 导致图像尺寸更大(包括额外的空白)。我通过使用解决了这个问题

-dUseCropBox

...将页面大小设置为 CropBox 而不是 MediaBox

于 2016-01-24T20:20:05.293 回答
2

质量大小的权衡是不可避免的。您可以选择不同的压缩方式来减小尺寸,同时保持合理的质量。例如 DCT (jpeg) 或 jpeg2000,如果您的内容主要由照片图像组成,或者 CCITT 或 JBIG2,如果您的内容主要是黑白。

于 2013-07-22T14:51:12.073 回答
2
  1. 以点为单位查找宽度和高度 (%%BoundDingBox)
  2. 使用它们

    gs 
    -sDEVICE=png16m
    -dDEVICEWIDTHPOINTS=$l 
    -dDEVICEHEIGHTPOINTS=$h
    -r600 
    -dDownScaleFactor=3 
    -o tiger.png\
    examples/tiger.png
    

$w宽度和$h高度在哪里

于 2016-09-27T13:49:08.403 回答