ImageMagick是一款電腦開源圖片編輯軟件,該工具支持多個平臺并且完全免費使用,能對圖片進行多樣的轉換、裁剪、特效等等功能。
軟件介紹
ImageMagick是免費軟件:全部源碼開放,可以自由使用,復制,修改,發布,它遵守GPL許可協議,可以運行于大多數的操作系統,ImageMagick的大多數功能的使用都來源于命令行工具。
![]() | Robo3t下載 | 一款功能強大的數據庫管理軟件,可以幫助用戶進行管理數據庫內容管理和數據庫代碼編輯 |
![]() | OpenERP | 通過Python語言開發,可以將其安裝到客戶端開發環境中使用,內置EPR開發所需的大部分模塊。 |
![]() | KeeWeb | 最方便之處在于提供了一個開源的在線客戶端,也就是說你完全可以自己搭建一個 |
![]() | uDig | 具有完整的分層開放源碼GIS,還可以使用GRASS進行復雜的矢量運算 |
![]() | view ui | 基于Vue.js下開發的一組開源UI組件,可以幫助用戶快速構建網頁 |
注意事項
注意!軟件不支持中文路徑!
軟件功能
1.格式轉換:從一種格式轉換成圖像到另一個(例如 PNG 轉 JPEG)
2.變換:縮放,旋轉,裁剪,翻轉或修剪圖像
3.透明度:使圖像的部分變為透明
4.附加:添加形狀或一幀到圖像
5.裝飾:添加邊框或幀圖像
6.特效:模糊,銳化,閾值,或色彩圖像動畫:創建一個從GIF動畫圖像組序列7.文本及評論:插入描述或藝術圖像中的文字
8.圖像識別:描述的格式和圖像性能
9.綜合:重疊了一個又一個的圖像
10.蒙太奇:并列圖像畫布上的圖像縮略圖
11.電影支持:讀寫圖像的共同使用的數字電影工作方式
12.圖像計算器:應用數學表達式的圖像或圖像通道
13.離散傅立葉變換:實現正向和反向的DFT
14.高動態范圍圖像:準確地表現了從最明亮的陽光直射到最深最黑暗的陰影找真正的幕后廣泛的強度水平
15.加密或解密圖片:轉換成不懂亂碼,然后再返回普通圖像
16.虛擬像素支持:方便以外區域的圖像像素
17.大圖像支持:讀,過程,或寫mebi和吉比像素的圖像尺寸
18.執行:ImageMagick的是線程安全的,利用內部算法OpenMP的功能及快速的雙和四核處理器技術提供窗口優勢
19.異構分布式處理:某些算法可以在跨越的CPU,GPU,以及其他處理器組成的構平臺音樂會執行速度提高
使用教程
imagemagick的功能非常強大,除了之后我們會講到的命令行操作模式以外,還擁有諸多編程接口可以使用,其中就支持c++、java等語言,因為涉及到的編程類型過于,下面就主要介紹c++接口為例的使用教程。
ImageMagick的c++接口名稱為Magick++,Magick++中有以下幾個重要的對象:
Image:圖片對象,Magick++中最重要的對象;
Geometry:Geometry包含了圖片長度,寬度,偏移等信息;
Pixels:圖片的像素對象
Color:圖片的顏色對象
Blob:二進制數據大對象容器
代碼示例:
#include
#include
using namespace std;
using namespace Magick;
int main(int argc, char **argv)
{
InitializeMagick(*argv);
Image image;
try {
// 讀入一個圖片文件,把它存放在image對象中
image.read( "src.jpg" );
// 把圖片縮放到100x100的大小
image.resize( Geometry(100,100) );
// 把縮放后的圖片存放到文件
image.write( "dest.jpg" );
}
catch( Exception &error_ )
{
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
return 0;
}
操作詳解:
從上面的例子可以看出Magick++的使用非常的簡單,僅僅需要包含Magick++.h一個頭文件就可以了,它的所有api及對象都放在Magick的命名空間內。
唯一要注意的地方:
Magick++在發生錯誤的時候會拋出異常,所以一定要使用try catch塊捕獲住異常,這點千萬要記住。
注意事項:
另外,編譯時要-I/usr/local/include/ImageMagick ,-L/usr/local/lib,-lMagickCore -lm -lgomp -lpthread,學c++的都懂得,不再贅述。
命令大全
因為ImageMagick這款軟件的核心用法就是使用命令行進行操作的,所以了解命令大全對于使用此軟件的是非常重要的事情,為了幫助大家快速上手,下面就詳細講解下相關指令內容。
基本指令:
convert 轉換圖像格式和大小,模糊,裁剪,驅除污點,抖動,臨近,圖片上畫圖片,加入新圖片,生成縮略圖等。
identify 描述一個或較多圖像文件的格式和特性。
composite 根據一個圖片或多個圖片組合生成圖片
舉例說明:
convert +profile '*' [src]{file}.{ext} -quality 80 -resize '280x140^>' -gravity Center -crop 280x140+0+0 +repage [out]{file}_280x140.{ext}
把一張圖片按80的質量去壓縮(jpg的壓縮參數),同時按圖片比例非強制縮放成不超過280x140的圖片.居中裁剪280x140,去掉圖片裁減后的空白和圖片exif信息,通常這種指令是為了保證圖片大小正好為280x140
進階指令:
-quality 圖片質量,jpg默認99,png默認75
-resize
100x100 高度和寬度比例保留最高值,高比不變
100x100^ 高度和寬度比例保留最低值,寬高比不變
100x100! 寬度和高度強制轉換,忽視寬高比
100x100> 更改長寬,當圖片長或寬超過規定的尺寸
100x100< 更改長寬 只有當圖片長寬都超過規定的尺寸
100x100^> 更改長寬,當圖片長或寬超過規定的尺寸。高度和寬度比例保留最低值
100x100^< 更改長寬,只有當圖片長寬都超過規定的尺寸。高度和寬度比例保留最低值
100 按指定的寬度縮放,保持寬高比例
x100 按指定高度縮放,保持寬高比
-gravity NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast截取用的定位指令,定位截取區域在圖片中的方位
-crop 200x200+0+0 截取用的截取指令 ,在用定位指令后,按后兩位的偏移值偏移截取范圍左上角的像素后,再按前兩位的數值,從左上角開始截取相應大小的圖片
+repage 去掉圖片裁減后的空白
-dissolve 30 設定組合圖片透明度dissolve示例
+/-profile * 去掉/添加圖片exif信息
命令行批處理方法
有的時候用戶會需要使用ImageMagick來對文件進行批處理操作,例如下面問題所描述的將數千個SVG批量轉換為圖像格式,這對于ImageMagick而言也是基本操作罷了,想要了解具體操作的用戶快來看看問答內容吧。
問題描述:
我在文件夾和子文件夾中有數千個SVG。我想要的是將所有這些批量轉換為 jpg 或 png 圖像。
有人可以幫我寫一個ImageMagick(windows)的命令,它可以查找所有svg并將其轉換為原始名稱并將它們保存在同一個jpg / png中目錄?
以下是示例結構:
C:\\ \\ SVG\BusinessMan.svg
C:\ SVG\Models \ Home.svg
C:\ SVG \ Underline\underline.svg
轉換后我想要這樣:
C:\ SVG\BusinessMan.svg
C:\ SVGG \ BusinessMan.jpg
C:\ SVG \ Model #\\Home.svg
C: \ SVG\Models\Home.jpg
C:\ SVG \ Underline\underline.svg
C:\ SVG \ Underline\underline.jpg
< / code>
解決方法:
嘗試使用 FOR 從根文件夾中循環 / R 標記:
FOR / R%a IN(* .svg)DO轉換"%~a""%~dpna。 jpg"
此命令將轉換所有 .svg 從您啟動命令的根文件夾下的子目錄中的文件。
以上命令適用于命令行,如果您打算在批處理文件(.bat)中使用該命令,請記住使用 %% 而不是%:
FOR / R% %a IN(* .svg)DO轉換"%% ~a""%% ~dpna.jpg"
怎么做動圖
有的用戶可能使用ImageMagick實現了動圖制作的效果,這對于其軟件而言并不算難事,不過其中涉及到的指令比較復雜,用戶需要多個步驟才能制作出相關動圖,那么到底該怎么做呢?下面的教程就來告訴你答案。
動圖效果:
$ convert -delay 0 *.bmp -loop 0 animated.gif
// 將當前目錄下所有的bmp文件合成一個gif圖片動畫, 每幀間隔0ms, 重復播放。
// -delay n 遲延n*10毫秒
// -loop n 播放n輪, 0表示不斷地重復播放
$ convert -delay 50 frame1.gif frame1.gif frame1.gif -loop 0 animated.gif
// 將當前目錄下的frame1.gif文件制作成animated.gif動畫,其中3個frame1.gif作為一組,進行循環播放,延遲500毫秒。
$ convert -delay 50 frame1.gif -delay 100 frame1.gif -delay 150 frame1.gif -loop 0 -pause 200 animated.gif
// 在一輪播放之后暫停200毫秒,再進行下一輪播放。
$ convert anim1.gif anim2.gif combined.gif
// 將兩個動畫文件合并成一個。
附:
$ mogrify -resize 640x480 *.jpg
// 將當前目錄下所有的jpg文件縮為為640x480分辨率
截取圖像方法
作為一款圖片編輯軟件,接取圖像內容是同類型軟件都會擁有的功能,不過對于imagemagick而言,因為大多數都是憑借指令完成的,所以具體的步驟會稍微復雜一些,沒有圖形化編輯器那么簡單,感興趣的用戶可以來了解下。
原始圖像:img1.jpg,圖片尺寸:1920x1200
crop參數可以把一副圖像分成若干塊大小一樣的圖片,同時也可以在大圖上截取一塊圖片來,使用范例如下:
#magick img1.jpg -crop 500x500 dest.jpg
因為原圖片尺寸為1920x1200,所以可以分割出12塊圖片,注意如果尺寸不是目標圖片的整數倍,那么右邊緣和下邊緣的一部分圖片就用實際尺寸
在原始圖像上裁剪一張指定尺寸的小圖
magick img1.jpg -crop 600x450+300+600 dest.jpg
600x450是寬乘高,+300+600是橫縱坐標
如果裁剪的尺寸大于實際值,則以實際值為準。
magick img1.jpg -gravity center -crop 100x100+0+0 dest1.jpg
在img1.jpg中獲取中心部分100x100的圖片
magick img1.jpg -gravity southeast -crop 100x100+10+5 dest2.jpg
在img1.jpg中獲取距離右側10個像素,距離底側5個像素,尺寸100x100的圖片
更新內容
修復了bug

開源軟件下載專題中是小編將市面上的開源項目軟件收集而來,因為有用戶咨詢免費開源軟件有哪些,所以小編將這些使用開源協議的軟件進行了整合,方便用戶尋找并使用,開源軟件對于個人來說是完全免費的,大多數可以商用,快下載體驗吧!
精品推薦
-
UleadGIFAnimator破解版
詳情 -
捷速ocr文字識別軟件破解版
詳情 -
Topaz Mask ai中文漢化版
詳情 -
vray4.1 for sketchup渲染器
詳情 -
World Creator
詳情 -
PureRef(繪畫素材管理軟件)
詳情 -
coreldraw X4
詳情 -
光影魔術手
詳情 -
光影魔術手經典版本
詳情 -
Picture Control Utility 2
詳情 -
CADWorx2020
詳情 -
MeshLab(3d網格模型處理軟件)
詳情 -
萬彩動畫大師2020vip激活碼生成器
詳情 -
快手必揚特效平臺
詳情 -
visionmaster視覺軟件
詳情 -
easycanvas pc端
詳情
-
7 Zeplin
裝機必備軟件
網友評論