將 PDF 轉換為 1920x1080 的圖像
我想使用.pdf 將 PDF 轉換為 PNG 圖像
convert
。圖像必須符合 1920x1080 的比例,具有 ?x1080 的比例,並且具有最佳質量。以下是我可以與 convert 一起使用的許多選項: https ://imagemagick.org/script/command-line-options.php#append
- 首先我嘗試了以下命令行:
convert my.pdf -geometry 1920x1080 -size 1920x1080 -density 1920x1080 my_resized_pdf.png
該命令的結果為我提供了具有良好幾何形狀 (763x1080) 的圖像,但我不想獲得低質量。
- 我使用沒有幾何參數的轉換命令行,如下所示:
convert my.pdf -size 1920x1080 -density 1920x1080 my_resized_pdf.png
結果的質量正是我想要的,但解析度不是 1920x1080 比例,而是 842x595。它不完全適合 1920x1080 比例的高度。
是否可以從 PDF 獲得具有 ?x1080 比率和 100% 質量的 PNG 圖像?還是 842x595 是獲得 100% 質量圖像的最大比例?我應該將 DPI 選項設置為
convert
嗎?
這涉及一些試驗和錯誤,最後,您可能認為哪個結果是“最佳結果”是有爭議的。所以請允許我給出一些通用的建議:
- 使用該
-flatten
選項擺脫透明背景。透明度使得很難判斷結果的實際質量。如果您需要最終圖像中的透明度,您可以-flatten
在確定質量後移除。- 使用類似的東西
-density 300
來獲得高 DPI 結果。主要問題convert
是它預設使用非常低的密度(72 DPI)。此參數必須在輸入文件之前指定。- 縮小高 DPI 圖像可能會導致額外的模糊,因此也許計算正確的 DPI 值以達到所需的解析度是要走的路:
$ convert -density 100 file.pdf -flatten file100.png $ file file100.png file100.png: PNG image data, 827 x 1169, 8-bit colormap, non-interlaced $ echo $((1080*10000/1169)) 9238 $ convert -density 92.38 file.pdf -flatten file9238.png $ file file9238.png file9238.png: PNG image data, 764 x 1080, 8-bit colormap, non-interlaced
我不確定是否有辦法
convert
自行確定“理想”DPI 值。如果您將此問題帶到 ImageMagick IRC 頻道或論壇,我相信您會得到更多建議。如果您提供指向您正在使用的 PDF 文件的連結,它會有所幫助。;)
您還可以通過其他方式提高質量,例如通過修剪空白邊框。如果頁面的一半是白色的,您將失去很多解析度。甚至有一些解決方案可以重新包裝 PDF 文本以充分利用可用的螢幕空間(例如
k2pdfopt
)。最後,也嘗試其他程序。這是一個見仁見智的問題,但我更喜歡直接使用 Inkscape 或 GhostScript。ImageMagick 將字元“粘合在一起”,Inkscape 具有更平衡的結果,而 GhostScript 允許您渲染無模糊的純像素圖像(如果您喜歡 -
pngalpha
用於模糊版本,這實際上與 相同convert
)。圖像魔術:
墨水景觀:
鬼腳本:
gs -r92.38 -sDEVICE=png48 -sOutputFile=ghostscript.png file.pdf