在我正在處理的系統中,我們將縮略圖生成爲工作流的一部分。 有時PDF文件非常大(打印尺寸3m2),並且可以包含巨大的位圖圖像。高效的縮略圖生成巨大的PDF文件?
是否有縮略圖生成能力的程序是優化內存佔用處理這樣的大型PDF文件?
生成的縮略圖可以是png或jpg。
在我正在處理的系統中,我們將縮略圖生成爲工作流的一部分。 有時PDF文件非常大(打印尺寸3m2),並且可以包含巨大的位圖圖像。高效的縮略圖生成巨大的PDF文件?
是否有縮略圖生成能力的程序是優化內存佔用處理這樣的大型PDF文件?
生成的縮略圖可以是png或jpg。
ImageMagick是我用我所有的CLI顯卡,所以也許它可以爲你工作:
convert foo.pdf foo-%png
這將產生三個獨立的PNG文件:
foo-0.png
foo-1.png
foo-2.png
要創建只有一個縮略圖,將PDF看作是一個陣列([0]
是第一頁,[1]
是第二個,等等):
convert foo.pdf[0] foo-thumb.png
既然你擔心內存,與-cache
選項,您可以限制內存使用:
-cache 門檻可用像素高速緩存兆內存。
圖像的像素被存儲在存儲器中,直到 閾兆內存已經 消耗。隨後的像素操作 緩存在磁盤上。 內存的操作明顯更快,但是如果您的計算機沒有足夠數量的空閒內存,您可能想要調整此閾值 的值,則爲 。
所以縮略圖PDF文件,並調整其大小,,你可以運行這個命令,它應該有一個最大的內存使用20MB左右:
convert -cache 20 foo.pdf[0] -resize 10%x10% foo-thumb.png
或者你可以使用-density
指定輸出密度(900比例下降了很多):
convert -cache 20 foo.pdf[0] -density 900 foo-thumb.png
你應該在意嗎?目前負擔得起的服務器有512 GB RAM。這支持在1200 dpi下存儲超過9000英寸(250 m)正方形的全綵色未壓縮位圖。您使用磁盤所帶來的性能損失很大。
當然如果你有3m²的PDF文件,你也可以指定一個'-density'參數。否則...默認是每英寸72點你最終...讓我做一些計算... 24萬像素的圖像... – Benoit 2011-03-16 16:39:09
這將是很好。我也會添加'-resize'。 – Blender 2011-03-16 16:40:04
@Blender:是的。但是'-density'是調用委託(即它是Ghostscript)時所適用的,這是一個外部命令。也許代表不能被記憶限制? – Benoit 2011-03-16 16:41:39