2013-07-22 42 views
3

我有一個ghostscript命令可將pdf轉換爲幾個PNG圖像(每頁一個)。命令的參數如下:Ghostscript:質量和尺寸問題

-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由3507個像素)變得龐大。

如果我將ghostscript命令中的分辨率更改爲-r110,則頁面大小是正確的,但圖像質量很差。

有沒有另一種方法來提高圖像質量而不影響圖像大小?

謝謝

回答

1

質量大小的權衡是不可避免的。您可以選擇不同的壓縮方式來保持尺寸不變,同時保持合理的質量。例如。 DCT(jpeg)或jpeg2000(如果您的內容主要由攝影圖像組成)或CCITT或JBIG2(如果您的內容主要爲黑白)。

+0

這是爲什麼?我明白了,但我只想保持原始PDF文件的大小和質量。這不像我在增加尺寸? – hofnarwillie

+0

啊......可能,這是因爲你的原始PDF由矢量圖形組成。通常,與原始圖形近似的柵格數據相比,這些存儲的存儲空間很少。 –

+0

沒有,原始文件在頁面被掃描 – hofnarwillie

10

Got it!加入下列參數到我的GS命令:

-dDownScaleFactor=3 

GS documentation

這將導致內部渲染待由給定 (小整數)因子被輸出之前按比例縮小。例如,下面的 將產生的200dpi輸出從300dpi的內部呈現爲png:

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

需要注意的是'dDownScaleFactor'只支持PNG格式,至少直到GS 9.18 – maliayas

1

我有類似的問題,其中,PDF轉換到PNG使用的ghostscript導致的圖像中的與大得多的尺寸(包括額外的空白)。我解決了這個問題,通過使用

-dUseCropBox 

... which sets the page size to the CropBox rather than the MediaBox

+0

使用該選項修復了一些轉換實際圖像成爲左下角和圖像白色空間的其餘部分的小拇指。 – Wolf5

1
  1. 找到寬度和點(%% BoundingBox的)高度
  2. 使用它們

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

其中$w是寬度和$h高度