ImageMagick (TM) 是一個免費的創建、編輯、合成圖片的軟件。ImageMagick是一個旨在讀,寫和操縱許多流行的圖像格式的工具,包括GIF, JPEG, PNG, PDF,圖像和Photo CD。使用ImageMagick,你可以創建動態的GIF,使這個軟件制作適合于Web應用程序的圖片。
您還可以調整大小,旋轉,銳化,減少顏色,或添加特殊效果,圖像和保存完成的工作在相同或不同的圖像格式。
它可以讀取、轉換、寫入多種格式的圖片。圖片切割、顏色替換、各種效果的應用,圖片的旋轉、組合,文本,直線,多邊形,橢圓,曲線,附加到圖片伸展旋轉。
盡管大多數網頁中的例子都是用"convert"命令來處理圖像,還有很多其它的ImageMagick命令,我將在下文中簡單介紹。
其中的某些命令不能在網頁中正常的演示,我會給你這些命令的要點和技巧,盡管不能在這里顯示其生成的效果。convert——轉換和修改圖像
"convert"命令是ImageMagick的主要命令,幾乎網頁中所有的例子都使用這個命令。因此,我不在這里詳述這個命令,而是介紹下這個命令的歷史。
這個命令起源于IM初創期,用來轉換圖片格式,如今還是這個功能,這也就是被稱為轉換的原因。
這個命令可能都不讀取內存中的圖像,而是使用IM之外的輔助Delegate程序直接轉換。這種完全外在的形式已經隨著時間的推移淡出使用,也較少被需要,除了作為讀取和寫出復雜的圖像文件格式的方式。
在一段時間內,該命令被添加了一些額外的圖像處理功能,使這個命令在轉換不同甚至是相同的圖像格式時,產生了輕微的變化。這些一般是簡單的選項,但是在IM的版本5中,這些圖像處理功能被擴展了,成為了"convert"命令比進行圖像轉換更為重要的功能。
因為有各種各樣的選項,各種各樣的選項在運行的時候,會因為運行順序的不同而產生各種奇怪而不可控的結果。當多個圖像處理選項被使用時,IM因不穩定且不可控而開始失寵。
IM版本6見證了圖像處理方式從'options'方式轉變為'do it as you see it'方式,圖像處理功能變得穩定且可預測,IM的命令行變得有用了多個數量級。
源于此,"convert"再也不是僅僅轉換圖片格式,而成為了訪問圖像處理功能的命令行API,如以非常復雜的方式創建和修改圖像,而不需要圖像處理的學位,或者以計算機語言(如Perl, PHP, 或 C)編程。當然,一些shell腳本的知識是有用的,但也不是嚴格要求。
全部源碼開放,可以自由使用,復制,修改,發布。它遵守GPL許可協議。它可以運行于大多數的操作系統。ImageMagick的大多數功能的使用都來源于命令行工具。
Perl, C, C++, Python, PHP, Ruby, Java;現成的ImageMagick接口(PerlMagick, Magick++, PythonMagick, MagickWand for PHP, RubyMagick, and JMagick)是可利用的。這使得自動的動態的修改創建圖片變為可能。
A, ART, AVI, AVS, B, BIE, BMP, BMP2, BMP3, C, CACHE, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK, CMYKA, CUR, CUT, DCM, DCX, DNG, DOT, DPS, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, FAX, FITS, FPX, FRACTAL, G, G3, GIF, GIF87, GRADIENT, GRAY, HDF, HISTOGRAM, HTM, HTML, ICB, ICO, ICON, JBG, JBIG, JNG, JP2, JPC, JPEG, JPG, JPX, K, LABEL, M, M2V, MAP, MAT, MATTE, MIFF, MNG, MONO, MPC, MPEG, MPG, MSL, MTV, MVG, NULL, O, OTB, P7, PAL, PALM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PFA, PFB, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSD, PTIF, PWP, R, RAS, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, TIF, TIFF, TILE, TIM, TTC, TTF, TXT, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMF, WMFWIN32, WMZ, WPG, X, XBM, XC, XCF, XPM, XV, XWD, Y, YCbCr, YCbCrA, YUV..
命令行樣式改變的原因(或者叫IM以前的版本存在的問題)。
在ImageMagick以前的版本(版本5.5.7及更早的版本)中,命令行界面連接IM的程序庫傾向于使用命令參數呈現的順序。但這是非常隨機的,也讓所有試圖弄清軟件究竟是如何運行的人感到困惑。另外,運行成功的命令可能在下一次不能運行,但作為IM的創始人,始終不懈地改進接口,以讓它像人們所期望的那樣工作。
問題的根源在于ImageMagick所遵循的是相當標準的UNIX命令行處理格式
command [options] input_image output_image
隨著時間的推移這也開始產生問題,因為圖像處理是會進行大量操作,且對其執行的操作往往涉及多個圖像的復雜對象。基于這個原因,命令行處理樣式也開始改變。
command [options] image1 [options] image2 [options] output_image
這個能夠在新版的軟件中運行,并且是版本5.5.7中所使用的基本樣式。
各種各樣的圖像操作參數如“-negate”、“-resize”和“-crop”等,會在圖像導入之前或者之后使用。
例如,在版本5.5.7中,以下兩條命令都是可行的并且可以達到同樣的目的:
convert -negate image.gif output.gif
convert image.gif -negate output.gif
問題是如果進行兩個圖像處理操作,例如:
convert -size 40x20 xc:red xc:blue \
-append -rotate 90 append_rotate.gif
在版本5.5.7中的結果是:這兩個圖像首先將被旋轉,然后連接到一起,將產生如下的圖像。這說明"-rotate"操作將在"-append"之前進行,而這可能并不是使用者所預想的。
而在ImageMagick版本6中,操作將永遠按照使用者所給定的命令行順序運行。這樣之前的例子在版本6中,兩個圖像將首先被連接到一起,然后得到的圖像將進行旋轉,產生的圖像為:
如果使用者想在兩個圖像連接到一起之前旋轉,他可以明確地要求IM版本6按如下順序操作:
convert -size 40x20 xc:red xc:blue \
-rotate 90 -append append_rotate_bad.gif
這種良好的控制方式超越了IM之前的版本,只是可能額外需要一個管道或者介質保存圖像來實現。
要解決這個問題,需要大量的工作并克服兼容性的問題。但另一方面則是解決了在版本5中所應用的簡單命令無法如版本6那樣符合我們預期的運行。
實質上,命令行的用法在版本6之前的版本中并未界定清楚,在我們的定向思維被打破之前,產生了許多奇怪和意外的結果。
騰訊視頻官方版 | 45.34MB
愛奇藝視頻官方正式版 | 35.10MB
暴風影音最新版下載 | 50.3MB
酷狗音樂2022下載 | 37MB