<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 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    2015年10月19日

    有時候在客戶端使用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 ();  
                    }  
                }  
            }  
        }  
    }

    posted @ 2015-10-19 15:17 yuhaibo736 閱讀(314) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲影院在线观看| 日韩精品无码区免费专区 | 日本特黄特黄刺激大片免费| 一级毛片成人免费看免费不卡 | 激情综合亚洲色婷婷五月| 亚洲福利电影一区二区?| 精品亚洲aⅴ在线观看| 亚洲视频在线观看网站| 亚洲日韩乱码中文无码蜜桃| 亚洲视频免费观看| 亚洲jjzzjjzz在线播放| 91在线亚洲综合在线| 亚洲经典千人经典日产| 色欲色欲天天天www亚洲伊| 日韩色日韩视频亚洲网站| 边摸边脱吃奶边高潮视频免费| 另类图片亚洲校园小说区| 九九久久精品国产免费看小说| 国产日韩AV免费无码一区二区三区 | 免费真实播放国产乱子伦| 亚洲成a人片在线观看国产| 国产亚洲精品看片在线观看| 亚洲国产另类久久久精品黑人| 亚洲AV无码第一区二区三区| 亚洲精品白色在线发布| 亚洲熟妇少妇任你躁在线观看| 亚洲av无码av在线播放| 一级毛片aa高清免费观看| 很黄很污的网站免费| 亚洲精品免费网站| 国产男女猛烈无遮挡免费视频网站| 久久亚洲av无码精品浪潮| 亚洲精品私拍国产福利在线| 亚洲五月丁香综合视频| 福利片免费一区二区三区| 青青操在线免费观看| 日韩视频在线精品视频免费观看| 免费无码一区二区三区蜜桃大| 亚洲中文字幕视频国产| 亚洲精品在线免费观看视频| 亚洲精品久久无码av片俺去也|