起因是因為我不會圖片轉換,且發現很多圖片轉換都要錢,尤其是pdf轉jpg,于是我就是找到了這個包,自己處理.當然包時不會導的,所以只能用它提供的命令了.
準備工作
下載imagemagick:ImageMagick – Download
我下載的這個,傻瓜式安裝就行,把所有勾勾都勾上,然后要記住安裝路徑,然后打開系統環境變量,將bin目錄加到環境變量里頭.
接下來安裝ghostscript,我當時解決問題的時候以為是版本出了問題,所有我就在它的歷史庫里面下載了一個9.5.1的版本,當然你也可以下載最新版,版本不一定會造成問題
下載64位的:Releases · ArtifexSoftware/ghostpdl-downloads · GitHub
當然你也可以在官網下:Ghostscript : Downloads?
下載for windows64位的就行了
安裝完成后將安裝位置的bin目錄放入環境變量.
輸入命令檢查兩個是否成功安裝
magick --version//檢查imagemagick是否成功安裝
gswin64c --version//檢查gs是否成功安裝
如果兩個都沒有問題就可以愉快的進行圖片轉換了
最簡單的把pdf轉換成jpg
magick -density 300 -quality 100 "E:\develop\a.pdf" -flatten "E:\develop\o.jpg"
-density表示分辨率,quality表示質量指數,前一個字符串表示被轉換圖片,后一個表示轉換后的圖片,這個-flatten是關鍵,因為pdf是由很多個圖層組成的,用過極光pdf的都知道,點擊圖層修改就叫你付費,點擊會顯示圖層,所以-flatten是將所有圖層合并為一個單層,否則你就會的到一個很奇怪的圖片,比如發票白色底變成黑色底,而且字都消失了.
再就是其它圖片轉變為pdf
magick -density 300 -quality 100 "E:\develop\q.png" "E:\develop\g.pdf"
上述轉換有幾個弊端,第一個pdf是多圖層的,轉換成png,jpg就必須要加-flatten,想要再把jpg,png轉成pdf,這時得到的一定是單圖層的,這是不可避免的.其它轉換軟件一定也是這樣的,所以如果你想保留圖層,就備份一張pdf吧.?
其它圖片的相互轉換起始非常簡單
magick -density 300 -quality 100 "E:\develop\a.格式一" "E:\develop\o.格式二"
因該來說大部分的轉換都是支持的,我沒仔細研究
接下來講講gif與jpg之間的轉換
magick -density 300 -quality 100 a.gif -coalesce output_%03d.jpg
-coalesce表示將gif分解成多個jpg,%03d表示output帶三位數編號,加不加都無所謂
合成gif
magick -delay 0 -loop 0 E:\develop\en\*.jpg E:\develop\en\output.gif
-delay 0表示能設置的最小延遲,-loop 0表示無限循環,1表示只循環一次,然后*.jpg表示en/下的所有圖片.
如果你原本的圖片延遲很小的話再次合成可能會變慢.?
旋轉90度
magick -density 300 -quality 100 input.jpg -rotate 90 output.jpg
建議不要60,30度這樣轉,轉完你就會發現圖片壞掉了.
補充幾個命令
magick convert -density 300 input.pdf -background white -alpha remove +adjoin "output_%d.jpg"以圖層形式導出
gswin64c -dNOPAUSE -sDEVICE=jpeg -r300 -o "E:\develop\output_%03d.jpg" "E:\develop\shenbao.pdf"//將pdf以圖層形式導出
magick convert "E:\develop\an\output_*.jpg" "E:\develop\output.pdf"合并
常用參數
常用參數
-density <value>: 設置輸入文件的分辨率(DPI)。
-resize <geometry>: 調整圖像大小。
-quality <value>: 設置輸出文件的質量。
-colorspace <type>: 設置顏色空間(如 sRGB, CMYK)。
-rotate <degrees>: 旋轉圖像。
-crop <geometry>: 裁剪圖像。
-blur <radius>x<sigma>: 模糊圖像。
-sharpen <radius>x<sigma>: 銳化圖像。
-contrast: 增加對比度。
-monochrome: 轉換為單色圖像。
-negate: 反轉圖像顏色。
-flip: 垂直翻轉圖像。
-flop: 水平翻轉圖像。
-border <geometry>: 添加邊框。
-gravity <type>: 設置圖像的重心點(如 center, north, south)。
-annotate <geometry> <text>: 在圖像上添加注釋文本。
-font <name>: 設置字體。
-pointsize <value>: 設置字體大小。
-fill <color>: 設置填充顏色。
-stroke <color>: 設置描邊顏色。
動畫相關參數
-delay <value>: 設置每幀之間的延遲時間,單位是 1/100 秒。
-loop <value>: 設置 GIF 動畫的循環次數。
-coalesce: 將多幀圖像展開為獨立幀。
-deconstruct: 移除與前一幀相同的部分。
-dispose <method>: 設置幀的處理方法。
-page <geometry>: 設置幀的頁面大小和位置。
輸入/輸出相關參數
-read <filename>: 讀取輸入文件。
-write <filename>: 寫入輸出文件。
-format <type>: 指定輸出文件格式。
-compress <type>: 設置壓縮類型(如 JPEG, PNG)。
-strip: 移除圖像文件中的所有配置文件和注釋。
-interlace <type>: 設置交錯類型(如 none, line, plane)。
-depth <value>: 設置圖像顏色深度。
示例
magick -delay 20 -loop 0 E:\develop\en\*.jpg E:\develop\en\output.gif
調整圖像大小
magick input.jpg -resize 800x600 output.jpg
旋轉圖像
magick input.jpg -rotate 90 output.jpg
裁剪圖像
magick input.jpg -crop 200x200+50+50 output.jpg
添加文本注釋
magick input.jpg -font Arial -pointsize 24 -fill black -gravity center -annotate +0+0 "Sample Text" output.jpg
高質量 PDF 轉換
magick -density 300 -quality 100 input.pdf output.jpg
補充一下再java中使用這個包的坐標
<dependency><groupId>org.im4java</groupId><artifactId>im4java</artifactId><version>1.4.0</version>
</dependency>