1

コアAPIを使用して、メソッド "svgCanvas.importImage(url)がbase64でエンコードされた画像をインポートできることを確認しました。

ただし、組み込みAPIは、プライベートであるこのメソッドを公開しません。また、メソッドが使用するメソッド(svgFromgJsonなど)を使用できないようです。

埋め込まれたsvg-editの起動時に画像を表すbase64文字列をロードする方法について誰かアドバイスがありますか?その文字列をモックsvgファイルの<image>タグ内にラップして、その方法でインポートすることを考えています。

SVGはビットマップ画像の埋め込みをサポートしていますか?

4

1 に答える 1

1

私の元の質問の答えに基づいて既存のコードを変更すると、サンプルのインポートを変更しましたが、それは非常にうまく機能します。

  1. ページにembedapi.jsを含めます
  2. svg-editを表示するIframeを定義する
  3. iframeのonloadイベントで次のコード関数を呼び出します

    // call onLoad for the iframe
     var frame = document.getElementById('svgedit');
        svgCanvas = new embedded_svg_edit(frame);
    
     // Hide main button, as we will be controlling new/load/save etc from the host document
     var doc;
     doc = frame.contentDocument;
     if (!doc)
     {
       doc = frame.contentWindow.document;
     }
    
      var mainButton = doc.getElementById('main_button');
      mainButton.style.display = 'none';            
      var embeddedImage='<image xlink:href="data:image/png;base64,..OMITTED FOR BREVITY.." id="svg_2" height="128" width="128" y="0" x="0"/>';
    
      var svgDef = '<svg width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><g><title>Layer 1</title>' + embeddedImage +  '</g></svg>';
       svgCanvas.setSvgString(svgDef);
    
    }
    
于 2013-02-19T00:22:00.780 に答える