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

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