如何使用嵌入式API在svg-edit中导入图像/栅格

时间:2013-02-18 22:01:30

标签: base64 svg-edit

我确定使用核心api,方法“svgCanvas.importImage(url)可以导入base64编码图像。

但是嵌入式API不公开这种私有的方法。我似乎也不能使用方法使用的任何方法(svgFromgJson等)。

当嵌入式svg-edit启动时,是否有人建议如何加载表示图像的base 64字符串?我想将该字符串包装在<图像>在一个模拟svg文件中标记并导入该方式..

Does SVG support embedding of bitmap images?

1 个答案:

答案 0 :(得分:1)

根据原始问题中的答案修改现有代码,我修改了他们的示例导入,并且它的效果非常好。

  1. 在您的信息页中包含embedapi.js
  2. 定义iframe以显示svg-edit
  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);
    
    }