ImageMagick入門教程(免費圖片格式轉換)

起因是因為我不會圖片轉換,且發現很多圖片轉換都要錢,尤其是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>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13783.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一文讀懂RDMA: Remote Direct Memory Access(遠程直接內存訪問)

目錄 ?編輯 引言 一、RDMA的基本原理 二、RDMA的主要特點 三、RDMA的編程接口 四、RDMA的代碼演示 服務器端代碼&#xff1a; 客戶端代碼&#xff1a; 五、總結 引言 RDMA&#xff0c;全稱Remote Direct Memory Access&#xff0c;即遠程直接內存訪問&#xff0c;是…

客戶機/服務器交互模式

目錄 概述 網絡應用軟件的地位和功能 C/S 模式的特性 容易混淆的術語 C/S 模式的通信過程 網絡協議與 C/S 模式的關系 錯綜復雜的 C/S 交互 總結 概述 客戶機/服務器&#xff08;Client/Server&#xff0c;簡稱 C/S&#xff09;交互模式是一種常見的網絡應用軟件架構&a…

【ChatGPT】 Microsoft Edge 瀏覽器擴展使用 GPT

【ChatGPT】添加 Microsoft Edge 瀏覽器插件免費使用 GPT 文章目錄 準備工作添加擴展注意事項 使用 ChatGPT 可以更高效的搜索到想要的內容&#xff0c;有效節約在搜索引擎中排查正確信息的時間。 準備工作 準備一臺可上網的電腦電腦上安裝有 Windows 自帶的 Microsoft Edge …

二.常見算法--貪心算法

&#xff08;1&#xff09;單源點最短路徑問題 問題描述&#xff1a; 給定一個圖&#xff0c;任取其中一個節點為固定的起點&#xff0c;求從起點到任意節點的最短路徑距離。 例如&#xff1a; 思路與關鍵點&#xff1a; 以下代碼中涉及到宏INT_MAX,存在于<limits.h>中…

python+selenium - UI自動框架之封裝查找元素

單一的元素定位方法不能滿足所有元素的定位&#xff0c;可以根據每個元素的特點來找到合適的方法&#xff0c;可以參考下圖的方法&#xff1a; elementFind.py from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_con…

Vue filter實戰詳解

在 Vue.js 中&#xff0c;filter 是一種用于在模板中對數據進行格式化的功能。它可以用來對數據進行處理、過濾或格式化&#xff0c;然后在模板中直接使用。 filter 是一種全局的 Vue 實例方法&#xff0c;可以在任何組件的模板中使用。 1.定義全局過濾器&#xff1a; 在 Vue…

InnoDB如何解決幻讀的

InnoDB 使用一種稱為 Next-Key Locking 的鎖機制來解決幻讀問題。幻讀發生在一個事務在讀取某個范圍內的記錄時&#xff0c;另一個事務在這個范圍內插入新的記錄。InnoDB 的 Next-Key Locking 結合了行鎖&#xff08;Row Lock&#xff09;和間隙鎖&#xff08;Gap Lock&#xf…

MavLinK協議

由于在公司需要使用這個&#xff0c;我就寫一個文章用于入門級別 簡單介紹 MAVSDK是PX4開源團隊貢獻的基于mavlink通信協議的用于無人機應用開發的SDK&#xff0c;其可以部署在Windows、Linux、Android等多種平臺&#xff0c;并且支持多種語言如c/c、python、Java等。 在官網…

GIS讀研與求職準備:GNSS專業研0

本文介紹GIS方向研究生入學初期&#xff0c;為將來轉碼、從事開發類工作所作求職準備的規劃路徑、方向選擇等方面的建議。 最近&#xff0c;有很多師弟師妹詢問關于研究生方向選擇、求職準備、就業方向選擇等方面的問題。首先非常感謝大家的盲目信任&#xff08;開個玩笑&#…

基于 debian 12 利用 kubeadm 部署 k8s 1.29 版本

基于 debian 12 利用 kubeadm 部署 k8s 1.29 版本 預先準備 準備三臺debian 12的虛擬機&#xff0c;配置如下&#xff1a; HostnameIP配置k8s-master1192.168.31.604vCPU、8GiB 內存、50GiB 硬盤k8s-worker1192.168.31.614vCPU、8GiB 內存、50GiB 硬盤k8s-worker2192.168.31.6…

python從0開始學習(九)

前言 上一篇文章我們介紹了python中的序列類型和元組類型&#xff0c;本篇文章將接著往下將。 1、字典類型 字典類型是根據一個信息查找另一個信息的方式所構成的“鍵值對”&#xff0c;它表示索引用的鍵和對應的值構成的成對關系。它是一個可變數據類型&#xff0c;也就是說它…

Leetcode 3154. Find Number of Ways to Reach the K-th Stair

Leetcode 3154. Find Number of Ways to Reach the K-th Stair 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3154. Find Number of Ways to Reach the K-th Stair 1. 解題思路 這一題思路上就是一個動態規劃&#xff0c;我們只需要確定一下運行的終止條件&#xff0c;然后寫…

React中顯示數據

SX 會讓你把標簽放到 JavaScript 中。而大括號會讓你 “回到” JavaScript 中&#xff0c;這樣你就可以從你的代碼中嵌入一些變量并展示給用戶。例如&#xff0c;這將顯示 user.name&#xff1a; return (<h1>{user.name}</h1> ); 你還可以將 JSX 屬性 “轉義到 …

《web應用技術》第9次課后作業

一、將前面的代碼繼續完善功能 1、采用XML映射文件的形式來映射sql語句&#xff1b; 2、采用動態sql語句的方式&#xff0c;實現條件查詢的分頁。 二、學習git的使用。 1、每個小組將自己的項目上傳到gitee&#xff0c;學會協作開發&#xff1b; 2、學會從gitee上拉取項目…

【Text2SQL 經典模型】TypeSQL

論文&#xff1a;TypeSQL: Knowledge-Based Type-Aware Neural Text-to-SQL Generation ??? Code: TypeSQL | GitHub 一、論文速讀 本論文是在 SQLNet 網絡上做的改進&#xff0c;其思路也是先預先構建一個 SQL sketch&#xff0c;然后再填充 slots 從而生成 SQL。 論文發…

C++函數指針,鍵值對集合的學習

這段代碼使用了 std::unordered_map 來存儲 std::wstring 作為鍵&#xff08;key&#xff09;&#xff0c;而對應的值&#xff08;value&#xff09;是一個 std::function<void(std::array<int, 5>, SomeClass&, int)> 類型的函數指針。這個結構使得根據字符串…

C++ 時間處理-日期時間類

1. 關鍵詞2. 問題3. 設計理念4. 支持的能力5. 代碼實現 5.1. datetime.h5.2. timecount.cpp 6. 測試代碼7. 運行結果8. 源碼地址 1. 關鍵詞 C 時間處理 日期時間類 跨平臺 2. 問題 為什么C就沒有一個方便好用的表示日期時間的類&#xff1f; 同樣是高級語言&#xff0c;Ja…

2024 HGDD 榮耀開發者日·成都站

HGDD 榮耀開發者日成都站 活動時間&#xff1a;2024 年 5 月 27 日 活動地點&#xff1a;成都市雙流區 LA CADIERE 蔚藍湖濱城 期待與大家的見面&#xff01;

ISO 9001認證 要換版了!

ISO TC176/SC2 第50次會議2023年10月8日至13日在盧旺達基加利舉行。 會議確定ISO 9001標準的修訂從2024年1月開始&#xff0c;將包括WD&#xff08;Working Draft&#xff09;、CD&#xff08; Committee Draft&#xff09;、DIS&#xff08;Draft for International Standard&…

js+vue3+elementplus發送驗證碼實現(含倒計時重新發送)

<template><el-form :model"formValue" :rules"rules" ref"form"><el-form-item prop"phone"><el-input v-model.number"formValue.phone" class"form-input" placeholder"請輸入手機號…