小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ImageMagick使用for java(im4java)

 旭龍 2013-04-18

簡(jiǎn)介:用于讀、寫(xiě)、處理圖片文件,支持89種格式的圖片文件,利用imageMagick可以根據(jù)web應(yīng)用程序動(dòng)態(tài)生成圖片,也可以將一個(gè)或者一組圖片改變大小、旋轉(zhuǎn)、銳化、減色、增加特效等操作,并對(duì)操作結(jié)果進(jìn)行保存(可以設(shè)置保存格式)。ImageMagick是免費(fèi)軟件:全部源碼開(kāi)放,可以自由使用,復(fù)制,修改,發(fā)布。

ImageMagick命令:http://wenku.baidu.com/view/078062b069dc5022aaea007f.html

各種語(yǔ)言接口:(見(jiàn)http://www./script/api.php

Ada:G2F         C:MagickWand 和MagickCore          Ch:ChMagick          COM+:ImageMagickObject      C++:Magick++          java:JMagick和Im4java

開(kāi)源中國(guó)社區(qū)中源碼查看:http://www.oschina.net/code/explore/ImageMagick-6.6.6-6

使用方法:首先要安裝ImageMagick這個(gè)工具,安裝好這個(gè)工具后,再下載im4java包放到項(xiàng)目lib目錄里就行了。

ImageMagick  java 接口(im4java api):http://im4java./api/   (如果進(jìn)不了就從http://www./script/api.php =>java=>im4java 進(jìn)入)

im4java源碼下載:http:///projects/sfnet_im4java/downloads/im4java-1.3.2/im4java-1.3.2-src.tar.bz2/

  1. public class ImageTools {  
  2.   
  3.     /** 
  4.      * ImageMagick的路徑 
  5.      */  
  6.     public static String imageMagickPath = null;  
  7.     static {  
  8.         /** 
  9.          *  
  10.          * 獲取ImageMagick的路徑 
  11.          */  
  12.         Properties prop = new PropertiesFile().getPropertiesFile();  
  13.         //linux下不要設(shè)置此值,不然會(huì)報(bào)錯(cuò)  
  14.         imageMagickPath = prop.getProperty("imageMagickPath");  
  15.     }  
  16.   
  17.     /** 
  18.      *  
  19.      * 根據(jù)坐標(biāo)裁剪圖片 
  20.      *  
  21.      * @param srcPath   要裁剪圖片的路徑 
  22.      * @param newPath   裁剪圖片后的路徑 
  23.      * @param x         起始橫坐標(biāo) 
  24.      * @param y         起始縱坐標(biāo) 
  25.      * @param x1        結(jié)束橫坐標(biāo) 
  26.      * @param y1        結(jié)束縱坐標(biāo) 
  27.      */  
  28.   
  29.     public static void cutImage(String srcPath, String newPath, int x, int y, int x1,   int y1) throws Exception {  
  30.         int width = x1 - x;  
  31.         int height = y1 - y;  
  32.         IMOperation op = new IMOperation();  
  33.         op.addImage(srcPath);  
  34.         /** 
  35.          * width:  裁剪的寬度 
  36.          * height: 裁剪的高度 
  37.          * x:       裁剪的橫坐標(biāo) 
  38.          * y:       裁剪的挫坐標(biāo) 
  39.          */  
  40.         op.crop(width, height, x, y);  
  41.         op.addImage(newPath);  
  42.         ConvertCmd convert = new ConvertCmd();  
  43.   
  44.         // linux下不要設(shè)置此值,不然會(huì)報(bào)錯(cuò)  
  45.         convert.setSearchPath(imageMagickPath);  
  46.   
  47.         convert.run(op);  
  48.     }  
  49.   
  50.     /** 
  51.      *  
  52.      * 根據(jù)尺寸縮放圖片 
  53.      * @param width             縮放后的圖片寬度 
  54.      * @param height            縮放后的圖片高度 
  55.      * @param srcPath           源圖片路徑 
  56.      * @param newPath           縮放后圖片的路徑 
  57.      */  
  58.     public static void cutImage(int width, int height, String srcPath,  String newPath) throws Exception {  
  59.         IMOperation op = new IMOperation();  
  60.         op.addImage(srcPath);  
  61.         op.resize(width, height);  
  62.         op.addImage(newPath);  
  63.         ConvertCmd convert = new ConvertCmd();  
  64.         // linux下不要設(shè)置此值,不然會(huì)報(bào)錯(cuò)  
  65.         convert.setSearchPath(imageMagickPath);  
  66.         convert.run(op);  
  67.   
  68.     }  
  69.   
  70.     /** 
  71.      * 根據(jù)寬度縮放圖片 
  72.      *  
  73.      * @param width            縮放后的圖片寬度 
  74.      * @param srcPath          源圖片路徑 
  75.      * @param newPath          縮放后圖片的路徑 
  76.      */  
  77.     public static void cutImage(int width, String srcPath, String newPath)  throws Exception {  
  78.         IMOperation op = new IMOperation();  
  79.         op.addImage(srcPath);  
  80.         op.resize(width, null);  
  81.         op.addImage(newPath);  
  82.         ConvertCmd convert = new ConvertCmd();  
  83.         // linux下不要設(shè)置此值,不然會(huì)報(bào)錯(cuò)  
  84.         convert.setSearchPath(imageMagickPath);  
  85.         convert.run(op);  
  86.     }  
  87.   
  88.     /** 
  89.      * 給圖片加水印 
  90.      * @param srcPath            源圖片路徑 
  91.      */  
  92.     public static void addImgText(String srcPath) throws Exception {  
  93.         IMOperation op = new IMOperation();  
  94.         op.font("宋體").gravity("southeast").pointsize(18).fill("#BCBFC8")  
  95.                 .draw("text 5,5 juziku.com");  
  96.         op.addImage();  
  97.         op.addImage();  
  98.         ConvertCmd convert = new ConvertCmd();  
  99.         // linux下不要設(shè)置此值,不然會(huì)報(bào)錯(cuò)  
  100.         convert.setSearchPath(imageMagickPath);  
  101.         convert.run(op, srcPath, srcPath);  
  102.     }  
  103.   
  104.     public static void main(String[] args) throws Exception {  
  105.         // cutImage("D:\\test.jpg", "D:\\new.jpg", 98, 48, 370,320);  
  106.         // cutImage(200,300, "/home/1.jpg", "/home/2.jpg");  
  107.         addImgText("http://home//1.jpg");  
  108.     }  
  109. }  


 

注意事項(xiàng):如果是在windows下運(yùn)行,則需要配置ImageMagick的路徑(現(xiàn)在很多安裝程序都不需要設(shè)置,已經(jīng)自動(dòng)幫你設(shè)置好了):

在環(huán)境變量path中添加(C:\Program Files\ImageMagick-6.7.5-Q16;) 

或者

  1. public static String imageMagickPath;  
  2. Properties prop = new PropertiesFile().getPropertiesFile();   
  3. imageMagickPath = prop.getProperty("imageMagickPath");  
  4. ConvertCmd convert = new ConvertCmd();  
  5. convert.setSearchPath(imageMagickPath);   

在config.properties文件里了,內(nèi)容如下所示: imageMagickPath=C:\\Program Files\\ImageMagick-6.7.5-Q16;

如果是在linux平臺(tái)下,千萬(wàn)不需要配置,設(shè)置了會(huì)報(bào)錯(cuò)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多