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

開源軟件下載專題中是小編將市面上的開源項(xiàng)目軟件收集而來(lái),因?yàn)橛杏脩糇稍兠赓M(fèi)開源軟件有哪些,所以小編將這些使用開源協(xié)議的軟件進(jìn)行了整合,方便用戶尋找并使用,開源軟件對(duì)于個(gè)人來(lái)說(shuō)是完全免費(fèi)的,大多數(shù)可以商用,快下載體驗(yàn)吧!
下載地址
精品推薦
-
UleadGIFAnimator破解版
詳情 -
捷速ocr文字識(shí)別軟件破解版
詳情 -
Topaz Mask ai中文漢化版
詳情 -
vray4.1 for sketchup渲染器
詳情 -
World Creator
詳情 -
PureRef(繪畫素材管理軟件)
詳情 -
coreldraw X4
詳情 -
光影魔術(shù)手
詳情 -
光影魔術(shù)手經(jīng)典版本
詳情 -
Picture Control Utility 2
詳情 -
CADWorx2020
詳情 -
MeshLab(3d網(wǎng)格模型處理軟件)
詳情 -
萬(wàn)彩動(dòng)畫大師2020vip激活碼生成器
詳情 -
快手必?fù)P特效平臺(tái)
詳情 -
visionmaster視覺(jué)軟件
詳情 -
easycanvas pc端
詳情
-
7 Zeplin
裝機(jī)必備軟件
網(wǎng)友評(píng)論