ImageMagick (TM) 是一個免費的創(chuàng)建、編輯、合成圖片的軟件。ImageMagick是一個旨在讀,寫和操縱許多流行的圖像格式的工具,包括GIF, JPEG, PNG, PDF,圖像和Photo CD。使用ImageMagick,你可以創(chuàng)建動態(tài)的GIF,使這個軟件制作適合于Web應用程序的圖片。
您還可以調整大小,旋轉,銳化,減少顏色,或添加特殊效果,圖像和保存完成的工作在相同或不同的圖像格式。
它可以讀取、轉換、寫入多種格式的圖片。圖片切割、顏色替換、各種效果的應用,圖片的旋轉、組合,文本,直線,多邊形,橢圓,曲線,附加到圖片伸展旋轉。
盡管大多數網頁中的例子都是用"convert"命令來處理圖像,還有很多其它的ImageMagick命令,我將在下文中簡單介紹。
其中的某些命令不能在網頁中正常的演示,我會給你這些命令的要點和技巧,盡管不能在這里顯示其生成的效果。convert——轉換和修改圖像
"convert"命令是ImageMagick的主要命令,幾乎網頁中所有的例子都使用這個命令。因此,我不在這里詳述這個命令,而是介紹下這個命令的歷史。
這個命令起源于IM初創(chuàng)期,用來轉換圖片格式,如今還是這個功能,這也就是被稱為轉換的原因。
這個命令可能都不讀取內存中的圖像,而是使用IM之外的輔助Delegate程序直接轉換。這種完全外在的形式已經隨著時間的推移淡出使用,也較少被需要,除了作為讀取和寫出復雜的圖像文件格式的方式。
在一段時間內,該命令被添加了一些額外的圖像處理功能,使這個命令在轉換不同甚至是相同的圖像格式時,產生了輕微的變化。這些一般是簡單的選項,但是在IM的版本5中,這些圖像處理功能被擴展了,成為了"convert"命令比進行圖像轉換更為重要的功能。
因為有各種各樣的選項,各種各樣的選項在運行的時候,會因為運行順序的不同而產生各種奇怪而不可控的結果。當多個圖像處理選項被使用時,IM因不穩(wěn)定且不可控而開始失寵。
IM版本6見證了圖像處理方式從'options'方式轉變?yōu)?do it as you see it'方式,圖像處理功能變得穩(wěn)定且可預測,IM的命令行變得有用了多個數量級。
源于此,"convert"再也不是僅僅轉換圖片格式,而成為了訪問圖像處理功能的命令行API,如以非常復雜的方式創(chuàng)建和修改圖像,而不需要圖像處理的學位,或者以計算機語言(如Perl, PHP, 或 C)編程。當然,一些shell腳本的知識是有用的,但也不是嚴格要求。
全部源碼開放,可以自由使用,復制,修改,發(fā)布。它遵守GPL許可協(xié)議。它可以運行于大多數的操作系統(tǒng)。ImageMagick的大多數功能的使用都來源于命令行工具。
Perl, C, C++, Python, PHP, Ruby, Java;現成的ImageMagick接口(PerlMagick, Magick++, PythonMagick, MagickWand for PHP, RubyMagick, and JMagick)是可利用的。這使得自動的動態(tài)的修改創(chuàng)建圖片變?yōu)榭赡堋?/p>
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的創(chuàng)始人,始終不懈地改進接口,以讓它像人們所期望的那樣工作。
問題的根源在于ImageMagick所遵循的是相當標準的UNIX命令行處理格式
command [options] input_image output_image
隨著時間的推移這也開始產生問題,因為圖像處理是會進行大量操作,且對其執(zhí)行的操作往往涉及多個圖像的復雜對象;谶@個原因,命令行處理樣式也開始改變。
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