Ghostscript:质量和尺寸问题

问题描述 投票:0回答:4

我有一个 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 在 Adobe Reader 中显示为常规 A4 页面,但在 PNG 图像中它会变得很大(例如 2480 x 3507 像素)。

如果我将 Ghostscript 命令中的分辨率更改为

-r110
,页面大小是正确的,但图像质量非常光栅化。

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

谢谢

pdf pdf-generation ghostscript
4个回答
16
投票

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

-dDownScaleFactor=3

来自 GS 文档

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

 gs -sDEVICE=png16m -r600 -dDownScaleFactor=3 -o tiger.png\
      examples/tiger.png

3
投票

我遇到了类似的问题,使用 Ghostscript 将 PDF 转换为 PNG 会导致图像尺寸更大(包括额外的空白)。我通过使用

解决了这个问题
-dUseCropBox

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


2
投票

质量与尺寸的权衡是不可避免的。您可以选择不同的压缩来缩小尺寸,同时保持合理的质量。例如。如果您的内容主要由摄影图像组成,则为 DCT (jpeg) 或 jpeg2000;如果您的内容主要为黑白图像,则为 CCITT 或 JBIG2。


2
投票
  1. 求宽度和高度(以点为单位)(%%BoundDingBox)
  2. 使用它们

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

其中

$w
是宽度,
$h
是高度

© www.soinside.com 2019 - 2024. All rights reserved.