亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wmf2svg.java

?? wmftosvg圖片轉換源代碼。使用前需要下載相關lib先。
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package SWF2SVG;

// Copyright 1997, 1998,1999 Carmen Delessio (carmen@blackdirt.com)
// Black Dirt Software http://www.blackdirt.com/graphics
// Free for non-commercial use

// revisions:
// May 12,1999 corrected bad URL http://www.w3.org 
// Corrected using <desc> as placeholders by embedding in their own <g>



import java.io.*;
import java.util.*;
import java.util.List;
import java.awt.*;
import java.net.*;
import java.applet.Applet;
import java.lang.Math;
import java.lang.String;
import java.awt.image.*;


class wmf2svg{

	  boolean   brushset=true;
	  boolean   penset=true;
	  boolean   fontset=true;
	  boolean   textColorset=true;
      private byte[] bytebuffer;
      private int i;
      private int j;
      private int bytes_read;

      private int rdSize;
      private int windowLong;
      private short windowInt;

      public short inch;

      private boolean oldset;
      private static MetaRecord mRecord;
      private java.util.Vector MetaRecordVector;
      private java.util.Enumeration MetaRecordInfo;
      private DataInputStream d;

      private int recordIndex;
      private int handleIndex;
      public WMFHandleTable ht;
      private int[] ncount;
      
      byte[] byteData;                // Unpacked data: one byte per pixel
      byte[] rawData;                 // the raw unpacked data
      int[] intData;                  // Unpacked data: one int per pixel

      public WMFToolkit cvtTool = new WMFToolkit();
      private boolean drawFilled;
      private short oldx;
      private short oldy;

      private String svgGraphic = new String("");
      private String svgInit = new String("");


      private short numRectangles;
      private short numPolygons;
      private short numOvals;
      private short numLines;
      
      public short WMFWidth;
      public short WMFHeight;

      private short htmlWidth = 800;
      private short htmlHeight = 600;


      public short logExtX;
      public short logExtY;

      public short logOrgX = 0;
      public short logOrgY = 0;


      public short devExtX;
      public short devExtY;


      public int AppletWidth;
      public int AppletHeight;

      public  float d_x;
      public  float d_y;
      public  Graphics wmfGraphics;              
      public  Image wmfImageBuffer;                  

      public int fontStyle;
      public int fontWeight;
      public boolean fontItalic = false;

      public      int penRed =0;
      public      int penGreen =0;
      public      int penBlue =0;

      public      int textRed =0;
      public      int textGreen =0;
      public      int textBlue =0;
      String textColor="ffff" ;
      String penColor="ffff" ;
      String brushColor="ffff";
      List hs = new  ArrayList();
      public boolean styleSet = false;
      Stack dcstack=new Stack();


  public wmf2svg(InputStream is, PrintStream os) throws IOException
  {
	  
    
       oldset=false;
      
        d = new DataInputStream(is);
        parseit();
        WMFPlay();
        if (styleSet){
          svgGraphic += "</g>";
        }
        svgGraphic += "</svg>\n";
//        System.out.println(svgGraphic);
        os.println(svgGraphic);
  }


 // gets all wmf records into a hash table
  public synchronized void  parseit()throws IOException {

       byte[] f_long =new byte[4];
       byte[] f_int = new byte[2];
       byte[] parmBuffer;
       short x;
       short y;
       short x2;
       short y2;
       short count = 0;
       MetaRecord locMetaRecord;

//begin metafile header

          windowLong = readLong(d); //key  4 bytes
          if (windowLong == -1698247209){
           windowInt = readInt(d); // unused
           x2 = readInt(d);
           y2 = readInt(d);
           x = readInt(d);
           y = readInt(d);
           WMFWidth = (short) Math.abs(x2-x);
           WMFHeight = (short) Math.abs(y2-y);

           windowInt = readInt(d); // inch
           inch = windowInt;

           x = (short)(inch/cvtTool.getScreenResolution());  //pixels per inch
           if (x < 1){
             x =1;
           }

           WMFWidth = (short)(WMFWidth /x);
           WMFHeight = (short)(WMFHeight/x);

           // based on bounded bo x- nnox consideration of map modes

           svgGraphic = "<?xml version = \"1.0\" standalone = \"yes\"?>\n";
           svgGraphic = svgGraphic + "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG April 1999//EN\"\n \"http://www.w3.org/Graphics/SVG/svg-19990412.dtd\">\n";
           svgGraphic = svgGraphic + "<svg width = \"" + WMFWidth +"px\" height=\"" + WMFHeight+"px\">\n";


           htmlWidth = WMFWidth;
           htmlHeight = WMFHeight;

           devExtX = htmlWidth;
           devExtY = htmlHeight;

           x = cvtTool.twip2pixel(x);  // add inch stuff here
           y = cvtTool.twip2pixel(y);

           windowLong = readLong(d); // reserved
           windowInt = readInt(d);// checksum

           //metaheader

           for ( i = 0; i < 3; i++){
            windowInt = readInt(d);
           }
           windowLong = readLong(d);
           windowInt = readInt(d);
           windowLong = readLong(d);
           windowInt = readInt(d);
        }
        else {
        // not placeable- no metafile header
        // already read long to check for key

        windowInt = readInt(d);

        windowLong = readLong(d);
        windowInt = readInt(d);
        windowLong = readLong(d);
        windowInt = readInt(d);


        }


        MetaRecordVector = new java.util.Vector();
        while(true){
           count++;
           try{
                 d.readFully(f_long);
              }
           catch(EOFException e){ System.out.println("**** eof");break;}

           if (bytes_read == -1)break;
           windowLong = flipLong(f_long);

           windowInt = readInt(d);

           if (windowInt == 0){
           break;}

           if (windowLong >= 3){
             windowLong = (windowLong*2) -6;
           }

           parmBuffer = null;
           parmBuffer = new byte[windowLong];
           d.readFully(parmBuffer);
           MetaRecordVector.addElement( new MetaRecord( windowLong, windowInt, parmBuffer));

        }
  }


  // interprets each record
  public  void WMFPlay( ) {
//      AppletWidth = w;
//      AppletHeight = h;
//      devExtX = (short) w;
//      devExtY = (short) h;

      ht = new WMFHandleTable();
      drawFilled = false;
      MetaRecordInfo = MetaRecordVector.elements();
      handleIndex = 0;
      recordIndex = 0;
    
      while(MetaRecordInfo.hasMoreElements()){
           mRecord = (MetaRecord) MetaRecordInfo.nextElement();
           WMFlistRecord(mRecord, false);
           recordIndex++;
          
      }



   }


   // works on a single metarecord
   // still need something to write out all info assigned in this
//   public synchronized  void WMFlistRecord(MetaRecord mRecord , boolean fromSelect, boolean play, Graphics g){
   public synchronized  void WMFlistRecord(MetaRecord mRecord , boolean fromSelect){
	
	 short x;
     short y;
     short x2;
     short y2;
     short numChars;
     short wOptions;
     int selColor;
     short w; 
     short h; 
     short lbhatch;
     short lbstyle;
     short numPoints;
     DataInputStream parmStream;
     ByteArrayInputStream  parmIn;
     String polyName;
     String shapeName;
     String tempBuffer;
     String colorBuffer;
     String currentFont = "Dialog";
     byte[] textBuffer;
     float fontHeight = 10;
     short fontHeightShort = 10;
     Polygon drawPoly = new Polygon();
     Polygon poly = new Polygon();

//     Image BMPimage = null;



     String this_one;


//      if (g == null) System.out.println(" graphics is null");

      parmIn = new ByteArrayInputStream(mRecord.getParm());
      parmStream = new DataInputStream(parmIn);
      

     switch(mRecord.getFunction()){



            case 0x2fa: // create pen indirect
                 if (!fromSelect){
                	 hs.add(recordIndex, mRecord);
                 } else {
                    lbstyle = readInt(parmStream); //if 5 outline is off
                    x = readInt(parmStream);
                    y = readInt(parmStream);
                    selColor = readLong(parmStream);
                    //cvtTool.setColors(selColor);
                  
                    colorBuffer = cvtTool.getRGBColor( selColor);
                    penColor = colorBuffer;
                     

                   /* if (styleSet){
                         svgGraphic = svgGraphic +"</g> \n";
                    } else{
                       styleSet = true;        
                    }*/
                    svgGraphic = svgGraphic + "stroke: #" + penColor + "stroke-width:#"+2+"\" > \n";


                 }
                 break;

            case 0x2fc: //createBrushIndirect

                 if (!fromSelect){  // if not seleceting it, just add it to table
                	 hs.add(recordIndex, mRecord);
                  }
                  else{  // selected - use it
                    lbstyle = readInt(parmStream);
                    selColor = readLong(parmStream);
                    lbhatch = readInt(parmStream);
                    cvtTool.setColors(selColor);
                    colorBuffer = cvtTool.getRGBColor( selColor);
                   
                     brushColor=colorBuffer;
                     
                   if (styleSet){
                         svgGraphic = svgGraphic +"> \n";
                    } else{
                          styleSet = true;        
                    }



                    if (lbstyle > 0 ){
                       drawFilled = false;
                       svgGraphic = svgGraphic + "stroke: #" + brushColor + "\" > \n";

                    }
                    else{
                       drawFilled = true; //filled
                       svgGraphic = svgGraphic + "fill: #" + brushColor + "\" > \n";
                     //  System.out.println("brushColor"+brushColor);
                    }



                 }
                 break;






            case 0x6ff: // create region
            	System.out.println("建區域");
                 if (!fromSelect){
                	 hs.add(recordIndex, mRecord);
                 }
                 break;


            case 0x2fb: //createFontIndirect
                 if (!fromSelect){  // if not selecting it, just add it to table
                	 hs.add(recordIndex, mRecord);
                  } else{
                   fontHeightShort = readInt(parmStream);
                   fontHeight = fontHeightShort;
                   fontHeightShort = (short)fontHeight;
                   if (fontHeightShort < 0) {
                     fontHeightShort *= -1;
                     fontHeightShort = mapY(fontHeightShort);
                   }
                   else{
                     fontHeight = (fontHeight/inch);
                     fontHeight = (fontHeight*72);
                     fontHeightShort = (short)fontHeight;
                     if (fontHeightShort < 5){
                        fontHeightShort = 9;
                     }
                   }
                   x2 = readInt(parmStream); // width
                   y2 = readInt(parmStream); //esc
                   y2 = readInt(parmStream); // orientation
                   y2 = readInt(parmStream); //weight
                   fontWeight = y2;
                   textBuffer = new byte[1];
                   try{
                     parmStream.read(textBuffer);
                   }
                   catch(IOException e){ System.err.println(e);}
                     
                   x = (short)textBuffer[0]; // italic
                   fontItalic = false;
                   if (x < 0){
                      fontItalic = true;
                   }


                   textBuffer = new byte[7];
                   try{
                     parmStream.read(textBuffer);
                   }
                   catch(IOException e){ System.err.println(e);}
                   tempBuffer = new String(textBuffer,0); 


                   textBuffer = new byte[32];  // name of font
                   try{
                     parmStream.read(textBuffer);
                   }
                   catch(IOException e){ System.err.println(e);}
                   tempBuffer = new String(textBuffer,0); 
                  
                   currentFont = "Dialog";
                   if (tempBuffer.startsWith("Courier")){
                     currentFont = "Courier";
                   }
                   else if (tempBuffer.startsWith("MS Sans Serif")) {
                     currentFont = "Dialog";
                   }
                   else if (tempBuffer.startsWith("Arial")) {
                     currentFont = "Helvetica";
                   }
                   else if (tempBuffer.startsWith("Arial Narrow")) {
                     currentFont = "Helvetica";
                   }
                   else if (tempBuffer.startsWith("Arial Black")) {
                     currentFont = "Helvetica";
                     fontWeight = 700;
                   }
                   else if (tempBuffer.startsWith("Times New Roman")) {
                     currentFont = "TimesRoman";
                   }
                   else if (tempBuffer.startsWith("Wingdings")) {
                     currentFont = "ZapfDingbats";
                   }
                   if (fontItalic) {
                       fontStyle = Font.ITALIC;
                       if (fontWeight >= 700){ // bold + italic
                         fontStyle = 3;
                       }
                   }
                   else{
                      fontStyle = Font.PLAIN;  // plain
                       if (fontWeight >= 700){ // bold
                         fontStyle = Font.BOLD;
                       }
                 
//                   g.setFont(new Font (currentFont, fontStyle, fontHeightShort));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
六月丁香婷婷色狠狠久久| 色综合久久综合网欧美综合网| 国产69精品一区二区亚洲孕妇 | 日本不卡免费在线视频| 成人看片黄a免费看在线| 欧美一区国产二区| 夜夜操天天操亚洲| 国产精品88888| 欧美一区二区成人6969| 亚洲精品视频在线观看网站| 国产成人午夜精品影院观看视频 | 精品国产1区二区| 亚洲免费在线播放| 成人永久免费视频| 欧美精品一区男女天堂| 美女在线观看视频一区二区| 欧美吞精做爰啪啪高潮| 亚洲天堂网中文字| 丁香激情综合国产| 国产午夜精品一区二区三区视频 | 手机精品视频在线观看| 91久久免费观看| 亚洲日本丝袜连裤袜办公室| 成人爽a毛片一区二区免费| 精品少妇一区二区三区在线视频| 视频一区国产视频| 欧美精品成人一区二区三区四区| 综合久久给合久久狠狠狠97色| 国产不卡免费视频| 欧美国产97人人爽人人喊| 国产精品亚洲专一区二区三区| 日韩欧美一二三区| 国产在线一区观看| 国产视频一区在线播放| 国产成人一区在线| 国产日韩成人精品| www.性欧美| 亚洲美女免费在线| 欧美专区日韩专区| 视频一区二区三区入口| 日韩亚洲欧美在线观看| 韩国欧美国产一区| 国产精品麻豆一区二区| 99免费精品在线观看| 亚洲精品午夜久久久| 欧美色偷偷大香| 免费xxxx性欧美18vr| 欧美精品一区二区三区四区| 国产精品一二三四| 亚洲欧美激情一区二区| 欧美日韩在线播放三区四区| 美女视频黄 久久| 久久精品一区二区三区四区| 成人ar影院免费观看视频| 亚洲精品视频自拍| 日韩精品一区二区三区四区| 国产精品自拍在线| 亚洲一区二区在线免费看| 日韩欧美色电影| av一区二区久久| 天天色综合天天| 国产日产欧美一区| 欧美午夜精品久久久| 国产精品一二三四五| 亚洲精品一二三| 久久亚洲一区二区三区明星换脸| 成人激情视频网站| 日本伊人色综合网| 亚洲欧洲av一区二区三区久久| 欧美三级韩国三级日本一级| 精品一区二区成人精品| 伊人夜夜躁av伊人久久| 欧美精品一区二区三区在线| 欧美熟乱第一页| 国产99精品视频| 日本特黄久久久高潮| 国产精品久久久久影视| 欧美电影免费观看高清完整版| 99re亚洲国产精品| 国产自产视频一区二区三区 | 国产精品欧美精品| 91麻豆精品国产自产在线 | 国产精品69久久久久水密桃| 亚洲影视资源网| 中文字幕va一区二区三区| 在线播放一区二区三区| 91丨porny丨最新| 国产经典欧美精品| 麻豆成人综合网| 天天色图综合网| 成人免费在线播放视频| 国产色综合久久| 欧美一级夜夜爽| 欧美区一区二区三区| 91麻豆免费观看| bt7086福利一区国产| 精品无码三级在线观看视频| 偷拍与自拍一区| 亚洲午夜精品网| 亚洲精品免费在线播放| 中文字幕一区不卡| 中文字幕欧美国产| 日本一区二区视频在线观看| 欧美成人精品3d动漫h| 欧美一区二区三区免费在线看| 91成人网在线| 欧美特级限制片免费在线观看| av在线这里只有精品| 成人午夜激情视频| 成人污视频在线观看| www.色精品| 91网站最新地址| 91视频com| 色呦呦网站一区| 91电影在线观看| 欧美日韩五月天| 777xxx欧美| 日韩精品一区二区三区在线播放| 日韩一区二区电影网| 日韩一区二区三区四区| 精品人在线二区三区| 久久久久久久性| 国产精品动漫网站| 亚洲青青青在线视频| 亚洲午夜免费电影| 美女性感视频久久| 国产伦精品一区二区三区在线观看 | 国产自产高清不卡| 国产一区二区三区在线看麻豆| 国产精品一区二区x88av| 成人app在线观看| 欧美视频三区在线播放| 日韩视频中午一区| 欧美激情资源网| 亚洲免费观看高清完整版在线观看 | 亚洲黄色小说网站| 亚洲大尺度视频在线观看| 秋霞国产午夜精品免费视频| 国产成人在线视频免费播放| 99精品欧美一区二区三区小说| 在线免费观看日本一区| 日韩视频国产视频| 国产精品免费观看视频| 午夜国产精品一区| 国产激情视频一区二区三区欧美| 99精品国产99久久久久久白柏 | 国产日本欧美一区二区| 亚洲视频每日更新| 捆绑调教美女网站视频一区| 成人一级视频在线观看| 欧美日韩一区二区三区四区五区| 精品久久久久久久久久久院品网| 亚洲欧洲美洲综合色网| 美洲天堂一区二卡三卡四卡视频 | 国产精品一区二区久久精品爱涩 | 婷婷激情综合网| 国产99久久久国产精品免费看| 欧美色精品在线视频| 亚洲国产经典视频| 蜜芽一区二区三区| 色爱区综合激月婷婷| 国产视频一区二区在线观看| 五月天激情小说综合| 成年人午夜久久久| 精品欧美乱码久久久久久1区2区| 日韩美女久久久| 国产精品一区二区男女羞羞无遮挡| 欧美日韩国产色站一区二区三区| 国产精品青草综合久久久久99| 久久激情综合网| 欧美午夜一区二区三区免费大片| 国产精品水嫩水嫩| 国产精品中文字幕日韩精品| 91精品国产综合久久香蕉麻豆| 亚洲人成伊人成综合网小说| 国产成人综合在线播放| 日韩免费观看高清完整版| 五月天国产精品| 欧美四级电影在线观看| 中文字幕一区二区不卡| 国产成人免费视频精品含羞草妖精 | 欧美日韩激情在线| 亚洲人成小说网站色在线| 成人午夜激情视频| 国产免费观看久久| 国产精品影视在线| 久久美女高清视频 | 天天综合日日夜夜精品| 欧美中文字幕一二三区视频| 亚洲欧美激情小说另类| 成人激情小说乱人伦| 中文字幕不卡一区| 成人爽a毛片一区二区免费| 国产日韩欧美综合一区| 国产69精品久久久久毛片 | 午夜视频久久久久久| 精品视频全国免费看| 午夜欧美大尺度福利影院在线看| 91久久精品一区二区二区| 亚洲一区二区黄色|