史上超強(qiáng)圖像處理開(kāi)源工具包--ImageMagick
?
ImageMagick簡(jiǎn)要介紹
ImageMagick是一套功能強(qiáng)大、穩(wěn)定而且免費(fèi)的工具集和開(kāi)發(fā)包。
可以用來(lái)讀、寫(xiě)和圖像格式轉(zhuǎn)換,可以處理超過(guò)100種圖像格式,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。
對(duì)圖片的操作,即可以通過(guò)命令行進(jìn)行,也可以用C/C++、Perl、Java、PHP、Python或Ruby編程來(lái)完成。
?
運(yùn)行平臺(tái)
ImageMagick幾乎可以在任何非專有的操作系統(tǒng)上編譯,無(wú)論是32位還是64位的CPU,包括*nix ,Windows '95/'98/ME/NT 4.0/2000/XP, Macintosh (MacOS 9 /10), VMS 和 OS/2.
?
使用協(xié)議
ImageMagick是免費(fèi)軟件:全部源碼開(kāi)放,可以自由使用,復(fù)制,修改,發(fā)布。它遵守GPL許可協(xié)議。它可以運(yùn)行于大多數(shù)的操作系統(tǒng)。
?
支持語(yǔ)言
Perl, C, C++, Python, PHP, Ruby, Java;現(xiàn)成的ImageMagick接口有以下幾種(PerlMagick, Magick++, PythonMagick, imagick for PHP, MagickWand for PHP, RubyMagick, and JMagick)。這可以讓程序自動(dòng)的動(dòng)態(tài)的修改創(chuàng)建圖片。
?
支持圖像格式
ImageMagick支持至少90種圖片格式: 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
由于上述這些特性,讓它成為WEB圖片處理的首選。
?
主要功能
1. 將圖片從一個(gè)格式轉(zhuǎn)換到另一個(gè)格式。
2. 改變尺寸、旋轉(zhuǎn)、銳化、減色、圖片特效
3. 縮略圖片的合成圖
4. 適于web的背景透明的圖片
5. 將一組圖片做成gif動(dòng)畫(huà)
6. 將幾張圖片做成一張組合圖片
7. 在一個(gè)圖片上寫(xiě)字或畫(huà)圖形,帶文字陰影和邊框渲染
8. 給圖片加邊框或框架
9. 取得一些圖片的特性信息
10 給圖片添加水印信息
?
安裝測(cè)試
1) 下載最新的ImageMagick壓縮包
?在官網(wǎng)
http://www.imagemagick.org/
上可以下載各種版本的軟件包
2)配置編譯并安裝
?? 第一步:解開(kāi)包文件
?? tar zxvf ImageMagick-5.5.6.tar.gz
?? 第二步:運(yùn)行配置文件,生成Makefile文件
?? ./configure --prefix==$targetDir
?? 默認(rèn)生成的靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)放置在/usr/local/lib,在C/C++工程中需要用到的頭文件放置在/usr/local/Include,你也可以通過(guò)指定$targetDir來(lái)將這些文件放置到其他目錄中??
?? 第三步:編譯
?? make
?? 第四步:安裝到指定的目錄??
?? make install
3)各種圖像格式的支持
? ImageMagick自身僅僅支持有限幾種格式的圖像,具體支持哪些格式圖像,可以在第二步的配置結(jié)果可以看出(見(jiàn)下表),如果你要處理的某種格式圖像在本配置結(jié)果列表中沒(méi)有(--with-xxx=no),就需要下載該格式圖像支持軟件包?
Delegate Configuration:
BZLIB???????????? --with-bzlib=yes????????????? yes
Autotrace???????? --with-autotrace=no?????????? no
Dejavu fonts????? --with-dejavu-font-dir=default??????? none
DJVU????????????? --with-djvu=yes?????????????? no
DPS?????????????? --with-dps=yes??????????????? no
FFTW????????????? --with-fftw=yes?????????????? no
FlashPIX????????? --with-fpx=yes??????????????? no
FontConfig??????? --with-fontconfig=no????????? no
FreeType????????? --with-freetype=yes?????????? no
GhostPCL????????? None????????????????????????? pcl6 (unknown)
GhostXPS????????? None????????????????????????? gxps (unknown)
Ghostscript?????? None????????????????????????? gs (unknown)
Ghostscript fonts --with-gs-font-dir=default??? /usr/share/fonts/default/Type1/
Ghostscript lib?? --with-gslib=no?????????????? no
Graphviz????????? --with-gvc=yes??????????????? no
JBIG????????????? --with-jbig=yes?????????????? no
JPEG v1?????????? --with-jpeg=yes?????????????? yes
JPEG-2000???????? --with-jp2=yes??????????????? no
LCMS v1?????????? --with-lcms=yes?????????????? no
LCMS v2?????????? --with-lcms2=yes????????????? no
LQR?????????????? --with-lqr=yes??????????????? no
Magick++????????? --with-magick-plus-plus=yes?? yes
OpenEXR?????????? --with-openexr=yes??????????? no
PERL????????????? --with-perl=no??????????????? no
PNG?????????????? --with-png=yes??????????????? no
RSVG????????????? --with-rsvg=no??????????????? no
TIFF????????????? --with-tiff=yes?????????????? no
Windows fonts???? --with-windows-font-dir=????? none
WMF?????????????? --with-wmf=yes??????????????? no
X11?????????????? --with-x=???????????????????? no
XML?????????????? --with-xml=no???????? no
ZLIB????????????? --with-zlib=yes?????????????? yes
? 通常可以免費(fèi)下載的軟件包包括PNG、JPEG、TIFF等
? PNG包下載地點(diǎn):
http://sourceforge.net/projects/libpng/
? JPEG包下載地點(diǎn):
http://freshmeat.net/redir/libjpeg/5665/url_tgz/jpegsrc.v6b.tar.gz
? TIFF包下載地點(diǎn):
http://www.randycullom.com/ImageMagick/tiff-v3.5.5.tar.gz
?
?注意:
?1)如果需要支持這些格式圖像,需要先安裝這些軟件包,再安裝ImageMagick,在安裝完成后,可以通過(guò)/usr/local/bin/convert -list format來(lái)看實(shí)際支持的文件格式。
?2)將ImageMagick安裝后的函數(shù)庫(kù)所在目錄加入到/etc/profile文件中的LD_LIBRARY_PATH環(huán)境變量中,以及/etc/ld.so.conf中同時(shí)運(yùn)行l(wèi)dconfig,否則一些對(duì)ImageMagic的應(yīng)用可能會(huì)出問(wèn)題。
??
4)功能測(cè)試
安裝好以后,可以通過(guò)運(yùn)行測(cè)試程序來(lái)檢驗(yàn)安裝是否正確,默認(rèn)情況下,ImageMagick的可執(zhí)行程序安裝在/usr/local/bin目錄下,可以通過(guò)運(yùn)行相應(yīng)的命令在檢查上述功能,具體使用實(shí)例可以參見(jiàn)
http://www.charry.org/docs/linux/ImageMagick/ImageMagick.html
??
附錄:其他一些圖像處理軟件包
GIMP(
http://www.gimp.org/
)是一個(gè)基于GNU通用許可的圖像處理軟件, 它比較適合用于照片修飾, 圖像合成和圖像創(chuàng)作. 它可以正常工作于各大操作系統(tǒng)平臺(tái),并且有多個(gè)國(guó)家語(yǔ)言版本。
詳細(xì)安裝和使用體驗(yàn)可以參考 強(qiáng)大的開(kāi)源圖像處理軟件——GIMP(
http://ukyoi-d.spaces.live.com/blog/cns!D40A6A1CE1A272AC!311.entry
)
Paint.NET( http://www.getpaint.net/ ) 是一個(gè)運(yùn)行在Windows操作系統(tǒng)上面的圖像和相片處理軟件。它包含許多特性,包括具有直觀的用戶界面,并支持層,無(wú)限次的撤銷,特效,以及各種各樣的強(qiáng)大實(shí)用的插件。Paint.NET的體積很小,下載包才有2M多,但它的功能幾乎強(qiáng)大到可比photoshop,只是要運(yùn)行Paint.NET需要在電腦里面安裝有NET.Framwork。
Blender( http://www.blender.org/ )是一個(gè)穩(wěn)定的3D模型創(chuàng)作軟件,可用于所有主要的操作系統(tǒng),基于GPL許可。你可以利用它創(chuàng)建模型,陰影,動(dòng)畫(huà)等交互式3D效果。
Crystal Space( http://www.crystalspace3d.org ) 是一個(gè)免費(fèi)的跨平臺(tái)軟件開(kāi)發(fā)工具包,主要用來(lái)開(kāi)發(fā)創(chuàng)建實(shí)時(shí)的3D圖形和一些特別的游戲。主要支持Linux ,Mac OS X和Windows 。
Art of Illusion ( http://www.artofillusion.org/ )是一個(gè)免費(fèi)開(kāi)源的3D模型渲染軟件. 它使用Java語(yǔ)言編寫(xiě), 可以運(yùn)行在任何Java虛擬機(jī)上面。
OpenFX ( http://www.openfx.org/ )是一個(gè)開(kāi)放源碼的三維建模,動(dòng)畫(huà)和渲染套件,由Stuart Ferguson博士創(chuàng)建。其強(qiáng)大的功能集包括一個(gè)完整的渲染和raytrace引擎, 在NURBS的支持下,采用基于運(yùn)動(dòng)學(xué)的動(dòng)畫(huà),變形,以及廣泛的插件API。
Java Image Filters是由 Jhlabs 開(kāi)發(fā)的一組用來(lái)處理 Java 圖像的類庫(kù),提供各種常用的圖像處理效果,例如反轉(zhuǎn)色、扭曲、水波紋、凹凸、黑白效果等等數(shù)十種效果
The CImg Library是一個(gè)強(qiáng)大的圖像處理類庫(kù)。在代碼中使用此類可以導(dǎo)入/導(dǎo)出,處理,和顯示圖片,它是一個(gè)強(qiáng)大的處理圖像的C++工具箱。
FreeImage是一個(gè)自由、開(kāi)源的圖形庫(kù)--FreeImage (支持位圖構(gòu)件―例 如調(diào)色板和數(shù)據(jù)位―的便易訪問(wèn);將位圖從一種位深度轉(zhuǎn)換到另一種位深度;當(dāng)有多幅位圖頁(yè)―例如TIFF―時(shí)訪問(wèn)位圖的不同頁(yè);基本的位圖處理,如旋轉(zhuǎn)、翻 轉(zhuǎn)(flipping)和重采樣,或點(diǎn)操作,如亮度和對(duì)比度調(diào)整;Alpha混合與合成(Compositing and blending);FreeImage不支持:高級(jí)圖象處理操作,如回卷(Convolution)和變換(Transform);位圖繪制; 矢量圖形。)
?
CxImage( http://www.codeproject.com/KB/graphics/cximage.aspx )?
CxImage類庫(kù)是一個(gè)優(yōu)秀的圖像操作類庫(kù)。它可以快捷地存取、顯示、轉(zhuǎn)換各種圖像。有的讀者可能說(shuō),有那么多優(yōu)秀的圖形庫(kù),如OpenIL,FreeImage,PaintLib等等,它們可謂是功能強(qiáng)大,齊全,沒(méi)必要用其它的類庫(kù)。但我要說(shuō),這些類庫(kù)基本上沒(méi)有免費(fèi)的,使用這些類庫(kù),你要被這樣那樣的許可協(xié)議所束縛。在這點(diǎn)上,CxImage類庫(kù)是完全免費(fèi)的。另外,在使用上述類庫(kù)時(shí),你會(huì)遇到重重麻煩。因?yàn)樗鼈兇蟛糠质瞧脚_(tái)無(wú)關(guān)的,且用C語(yǔ)言寫(xiě)成,有的還夾雜著基本的C++ wrapper和成堆德編譯選項(xiàng)的聲明需要你去處理。而CxImage類庫(kù)在這方面做得很好。還有讓我最看好的,就是作者完全公開(kāi)了源代碼。相對(duì)于那些封裝好的圖形庫(kù)和GDI+來(lái)說(shuō),這一點(diǎn)使我們可以進(jìn)一步學(xué)習(xí)各種編解碼技術(shù),而不再浮于各種技術(shù)的表面。
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
