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

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

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

    posts - 41, comments - 15, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java將svg圖片轉換為png格式圖片

    Posted on 2015-10-19 15:17 yuhaibo736 閱讀(315) 評論(0)  編輯  收藏

    有時候在客戶端使用svg畫圖,而在服務器端需要同樣的圖片,在服務器端重新畫一遍是非常費事的。這時候我們就可以利用已有的svg直接通過下面的類轉換成png格式。

    使用這個方法需要引用batic相關的包,maven pom文件如下:

    <!-- svg 生成png格式圖片  -->
    <dependency><groupId>batik</groupId><artifactId>batik-svggen</artifactId><version>1.6</version></dependency>        
    <dependency><groupId>batik</groupId><artifactId>batik-awt-util</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-bridge</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-css</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-dom</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-gvt</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-parser</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-script</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-svg-dom</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-transcoder</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-util</artifactId><version>1.6</version></dependency>
    <dependency><groupId>batik</groupId><artifactId>batik-xml</artifactId><version>1.6</version></dependency>
    <!-- 此處不能使用2.9.1版本,使用2.9.1生成png會失敗 -->
    <dependency><groupId>xerces</groupId><artifactId>xercesImpl</artifactId><version>2.5.0</version></dependency>
    <dependency><groupId>xml-apis</groupId><artifactId>xmlParserAPIs</artifactId><version>2.0.2</version></dependency>
    <dependency><groupId>org.axsl.org.w3c.dom.svg</groupId><artifactId>svg-dom-java</artifactId><version>1.1</version></dependency>
    <dependency><groupId>xml-apis</groupId>    <artifactId>xml-apis</artifactId><version>2.0.0</version></dependency>
    <dependency><groupId>org.w3c.css</groupId> <artifactId>sac</artifactId>    <version>1.3</version></dependency>
    <!-- svg 生成png格式圖片結束  -->
    package com.yhb.web.util;
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.UnsupportedEncodingException;
    import java.net.URL;
    import org.apache.batik.transcoder.TranscoderException;
    import org.apache.batik.transcoder.TranscoderInput;
    import org.apache.batik.transcoder.TranscoderOutput;
    import org.apache.batik.transcoder.image.PNGTranscoder;
    public final class FileUtil {
    /** 
         *@Description: 將svg字符串轉換為png 
         *@Author: 
         *@param svgCode svg代碼 
         *@param pngFilePath  保存的路徑 
         *@throws IOException io異常 
         *@throws TranscoderException svg代碼異常 
        */  
    public static void convertToPng(String svgCode,String pngFilePath) throws IOException,TranscoderException{  
     
            File file = new File (pngFilePath);  
      
            FileOutputStream outputStream = null;  
            try {  
                file.createNewFile ();  
                outputStream = new FileOutputStream (file);  
                convertToPng (svgCode, outputStream);  
            } finally {  
                if (outputStream != null) {  
                    try {  
                        outputStream.close ();  
                    } catch (IOException e) {  
                        e.printStackTrace ();  
                    }  
                }  
            }  
        }  
    /** 
         *@Description: 將svgCode轉換成png文件,直接輸出到流中 
         *@param svgCode svg代碼 
         *@param outputStream 輸出流 
         *@throws TranscoderException 異常 
         *@throws IOException io異常 
         */  
        public static void convertToPng(String svgCode,OutputStream outputStream) throws TranscoderException,IOException{  
            try {  
            byte[] bytes = svgCode.getBytes ("UTF-8");  
                PNGTranscoder t = new PNGTranscoder ();  
                TranscoderInput input = new TranscoderInput (new ByteArrayInputStream (bytes));  
                TranscoderOutput output = new TranscoderOutput (outputStream);  
                t.transcode (input, output);  
                outputStream.flush ();  
            } finally {  
                if (outputStream != null) {  
                    try {  
                        outputStream.close ();  
                    } catch (IOException e) {  
                        e.printStackTrace ();  
                    }  
                }  
            }  
        }  
    }


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲熟伦熟女新五十路熟妇| 午夜电影免费观看| 国产一级a毛一级a看免费视频 | 日本免费网站观看| 亚洲精品无码激情AV| 午夜亚洲AV日韩AV无码大全| 婷婷亚洲综合五月天小说| a级毛片免费高清毛片视频| 99在线精品视频观看免费| 精品国产免费一区二区| 亚洲精品无码久久久久去q| 亚洲最大在线观看| 国产成人综合亚洲| 在线免费观看h片| 亚洲成AV人片一区二区| 国产亚洲精品91| 亚洲日本中文字幕一区二区三区| 亚洲日韩在线观看免费视频| 色婷婷7777免费视频在线观看| 成年人网站免费视频| 亚洲宅男精品一区在线观看| 巨胸喷奶水视频www免费视频| 人人狠狠综合久久亚洲婷婷| 222www在线观看免费| 亚洲精品97久久中文字幕无码| 一级毛片免费毛片毛片| 午夜精品在线免费观看| 免费国产在线精品一区| 在线视频免费观看高清| 久久人午夜亚洲精品无码区| 亚洲成人免费电影| 亚洲码欧美码一区二区三区| 97青青草原国产免费观看| 亚洲国产av一区二区三区| 亚洲日韩国产二区无码| 亚洲综合精品网站| 在线看无码的免费网站| 亚洲国产精品国自产电影| 中文在线观看免费网站| 亚洲成av人片在线看片| 免费国产成人午夜电影|