以 convert 將 PDF 文件轉成 JPG 檔

今日忽然有了將 PDF 文件轉成 JPG 檔的必要,好用的 convert 又上工了。

先使用預設值,結果出現「not authorized」、「no images defined」兩個錯誤訊息:

imuser@b5sa:/Data2/圖片> convert 出遊照.pdf 出遊照.jpg

convert: not authorized `出遊照.pdf’ @ error/constitute.c/ReadImage/428.
convert: no images defined `出遊照.jpg’ @ error/convert.c/ConvertImageCommand/3275.

◆ 根據訊息指示搜尋,有關「not authorized」,找到簡單明瞭的一篇文章:

https://andy-carter.com/blog/how-to-fix-imagickexception-not-authorized
https://kau-boys.com/2386/web-server/repairing-image-conversation-with-imagemagick

於是修改 /etc/ImageMagick-7-SUSE/policy.xml:

將原本的 none 或 write

<policy domain=”coder” rights=”write” pattern=”PDF” />

改成 read 或 read|write

<policy domain=”coder” rights=”read|write” pattern=”PDF” />

就順利轉成 jpeg 檔了,沒出現錯誤,看來是 read 權限的問題。

 

◆ 至於「no images defined」,雖然看似沒問題,還是查了一下資料:

https://askubuntu.com/questions/1181762/imagemagickconvert-im6-q16-no-images-defined

似乎與 ghostscript 有關,系統也預裝了 gs ,應當不是出錯主因。

imuser@b5sa:/Data2/圖片> which gs
/usr/bin/gs

但因為眼前沒必要動它,留著資料參考罷了。


然後覺得預設參數的轉檔解析度太低,很不滿意,改參數吧!先看看參數功能(簡略):

imuser@b5sa:/Data2/圖片> convert --help

Version: ImageMagick 7.0.7-34 Q16 x86_64 20180520 https://www.imagemagick.org
Copyright: © 1999-2018 ImageMagick Studio LLC

-density geometry horizontal and vertical density of the image
-quality value JPEG/MIFF/PNG compression level

一般掃描解析度大多設在 DPI 600,就用 600 吧!因為轉出來的圖檔還得細部裁切,也就先不壓縮了。

imuser@b5sa:/Data2/圖片> convert -density 600 出遊照.pdf -quality 100 出遊照.jpg

兩相比較,明顯轉檔預設值的結果差太多,是不能用了。

(左方採用預設值;右方解析度 600/不壓縮)

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *