<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    void

    ImageMagick & JMagick的使用

    Pure java的圖片操作,不依賴操作系統的功能,圖片運算量比較大,如果批處理圖片或圖片size較大的話(如1M左右的圖片)的話,性能肯定不能滿足;用JNI(java本地調用),依賴操作系統提供的功能, 操作批量、大圖片,就成為首選方案。

    我在winxp環境下安裝調試JMagick,并成功運行了測試code,實現了圖片的多種操作,縮略圖、旋轉、設置邊框、設置背景等等...,下面記錄安裝及配置歷史,分享給大家:
    ImageMagick, JMagick安裝、配置及使用:
    平臺:winXP
    1. 安裝ImageMagick(ImageMagick website:http://www.imagemagick.org/script/index.php)
        下載并安裝ImageMagick。file name: ImageMagick-6.2.6-8-Q16-windows-dll.exe
         download address: http://prdownloads.sourceforge.net/imagemagick/ImageMagick-6.2.6-8-Q16-windows-dll.exe?download
        安裝成功后,

    把install path加入系統path(有些版本自己會默認添加),以便能調用dll.保險起見,

    然后再把安裝目錄下的所有dll文件復制到C:\WINDOWS\system32下(因為我出現過只添加路徑而不復制這些文件到C:\WINDOWS\system32,程序運行提示出錯的情況)

    2. 安裝JMagick(JMagick website: http://www.yeo.id.au/jmagick/
        下載JMatick。file name: jmagick-6.2.6-win.zip
        download address: http://www.yeo.id.au/jmagick/quickload/win-6.2.6/jmagick-6.2.6-win.zip
        解壓后

    把jmagick-6.2.6-win\q16\jmagick.dll copy 到c:\windows\system32目錄下,如果程序在運行的時候提示:找不到jmagick路徑,用System.out.println(System.getProperty("java.library.path")). 打印出當前環境的路徑,然后再把jmagick.dll 復制到其中的一個路徑文件夾中

     

    notes: If you are using Tomcat, or other java applications which have their own classloaders,

    方法1: 把jmagick-6.2.6-win\jar\jmagick.jar copy到項目的WEB-INF\lib目錄下,然后在服務啟動初始化的時候,System.setProperty("jmagick.systemclassloader","no");   (可以在過濾器的那個類里面加上這句話,也可以自己手動建立一個初始化的serverlet,然后加上這句話)

    方法2:簡單的方法,把jmagick-6.2.6-win\jar\jmagick.jar 復制到%JAVA_HOME%\jre\lib\ext.就ok了

     

    下面總結下windows + tomcat環境的安裝配置

    1:下載安裝ImageMagick-6.3.4-10-Q16-windows-dll.exe

    2:把install path加入系統path,然后把install path下的dll文件復制到C:\WINDOWS\system32

    3:下載JMatick。file name:jmagick-6.2.6-win-im-6.2.9.zip

    4:把q16目錄下的jmagick.dll復制到D:\Tomcat5.0\bin下(D:\tomcat是安裝路徑)

    5:把jar_15目錄下的jmagick.jar復制到%JAVA_HOME%\jre\lib\ext.

    6:完畢,測試

     

    PS:

    web應用如果部署到tomcat下,那么最好在catalina.bat文件中改變如下設置

    set JAVA_OPTS=%JAVA_OPTS% -Xms256M -Xmx768M -XX:MaxPermSize=128M -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="${catalina.base}\conf\logging.properties"

    避免heap溢出的問題,參數看你自己的機器而定。( -Xms256M -Xmx768M -XX:MaxPermSize=128M )

     

     

    下面把jmagick-6.2.6-win-im-6.2.9目錄下的說明文檔附在這里,注意看他的Getting Started和Notes部分

    This archive contains jmagick.dll 6.2.6 compiled against
    ImageMagick 6.2.9.

    q8 contains jmagick.dll compiled against ImageMagick 6.2.9-Q8
    http://www.imagemagick.org/download/binaries/ImageMagick-6.2.9-4-Q8-windows-dll.exe

    q16 contains jmagick.dll compiled against ImageMagick 6.2.9-Q16
    http://www.imagemagick.org/download/binaries/ImageMagick-6.2.9-4-Q16-windows-dll.exe

    It was built with gcc mingw 3.4.2 on Windows 2000 and Sun JDK 1.5.0 release 5.


    Getting Started:

    1. Install ImageMagick
    2. Copy the jmagick.dll corresponding with the Q8 or Q16 ImageMagick you installed to
        somewhere in your PATH. I would put it in the same directory as ImageMagick.
    3. Put jmagick.jar in your java classpath. If you are using Tomcat, or other java
        applications which have their own classloaders, move the jar up to a more global scope.
        If you had placed the jar in WEB-INF/lib and reload the webapp, java will attempt to
        reload jmagick.dll twice, and it will fail. By moving the jar up, the library will only
        be loaded once per jvm lifetime. I place mine in %JAVA_HOME%\jre\lib\ext.

    Notes:
    -------------------------------------------------------------------------------------------------
    If you see exceptions such as UnsatisfiedLinkError, you did one of the above steps incorrectly
    or you are not using the JVM/ImageMagick versions you think you are. Have your java code
    print out the java.library.path -- System.getProperty("java.library.path"). Check to ensure
    that jmagick.dll is in one of those directories.
    -------------------------------------------------------------------------------------------------
    If you run your java application as a service, any changes to the PATH environment variable will
    not be visible to java until you reboot.
    -------------------------------------------------------------------------------------------------
    This is the first time I have built jmagick.dll using gcc/mingw. Let me know if you have any issues.

    Mark Deneen
    mdeneen at gmail dot com

     

     

    -------------------------------------------------------------------------------------------------




    例子:


    /**
     * 以正方形比例輸出縮放圖片
     *
     * MaxBorderLen : 正方形邊長
    */
    public void CoutImage4Square(String srcImage, String DestImage, int MaxBorderLen){
       
        System.setProperty(
    "jmagick.systemclassloader","no");
       
        
    try{  

           ImageInfo info 
    = new ImageInfo(srcImage);
           MagickImage image 
    = new MagickImage(info);
          
           
    //取長寬
           Dimension dim = image.getDimension();
           
    double wImage = dim.getWidth();
           
    double hImage = dim.getHeight();
          
           Boolean bWBig 
    = wImage > hImage? true:false ;
          
           
    if (bWBig)
           {
    //長大過高
            hImage = MaxBorderLen * ( hImage / wImage);
            wImage 
    = MaxBorderLen;
           }
           
    else
           {
    //反之
            wImage = MaxBorderLen * ( wImage / hImage);
            hImage 
    = MaxBorderLen;
           }

           
    //輸出
           MagickImage scaled = image.scaleImage((int)wImage, (int)hImage);
           scaled.setFileName(DestImage);  
           scaled.writeImage(info);  

           }
    catch(MagickApiException ex){
           }
    catch(MagickException ex){
        }
    }

     

     

    posted on 2011-07-10 10:53 void 閱讀(1008) 評論(0)  編輯  收藏 所屬分類: Jmagick

    主站蜘蛛池模板: 亚洲成年人电影网站| 四虎影在线永久免费观看| 亚洲线精品一区二区三区| 一级做a爰片久久毛片免费看 | 一级毛片不卡免费看老司机| 日韩中文字幕在线免费观看| 欧美亚洲国产SUV| 亚洲AV无码乱码在线观看性色扶| MM1313亚洲精品无码久久| 免费99热在线观看| 一级做a爰片久久毛片免费陪 | 久久亚洲国产成人影院| 好爽又高潮了毛片免费下载| 亚洲精品宾馆在线精品酒店| 永久中文字幕免费视频网站| 美女扒开尿口给男人爽免费视频| 久久久久亚洲精品无码网址| 拍拍拍无挡免费视频网站| 久久精品亚洲日本佐佐木明希| 99re在线精品视频免费| 四虎必出精品亚洲高清| 亚洲国产精品成人| 国色精品va在线观看免费视频| 97se亚洲综合在线| 四色在线精品免费观看| 91视频免费观看高清观看完整| 亚洲国产老鸭窝一区二区三区| 一个人免费高清在线观看| 黄页视频在线观看免费| 在线A亚洲老鸭窝天堂| 亚洲一级毛片免费在线观看| 亚洲av永久无码精品秋霞电影秋| 在线亚洲精品福利网址导航| **俄罗斯毛片免费| 羞羞视频免费网站含羞草| 亚洲成AV人片在| 国产精品久久香蕉免费播放| a级毛片免费高清毛片视频| 亚洲入口无毒网址你懂的| 亚洲裸男gv网站| 日本免费网址大全在线观看 |