2017-09-06 5 views
1

ダイアグラムにはリモートサーバーからのイメージが含まれています。ダイアグラムをdiagram.makeImage()を使用してpngとしてエクスポートすると、イメージはリモートサーバから除外されます。 しかし、ローカルイメージでは問題なく動作しています。GoJs - エクスポートされたイメージリモートイメージを含むキャンバス図のイメージにはリモートイメージは含まれません

canvas screenshot
generated image using diagram.makeImage()

<html> 
<head> 
    <title>Gojs example</title> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/gojs/1.6.7/go-debug.js"></script> 
</head> 
<body onload="init()"> 
<div id="sample"> 
    <div id="myDiagramDiv" style="border: solid 1px black; width:50%; height:500px"></div> 
    <div> 
     <button onclick="createImage()">create Image</button> 
    </div> 
</div> 
<script> 
    var $ = go.GraphObject.make; 
    var myDiagram = null; 
    function init() { 
     myDiagram = $(go.Diagram, "myDiagramDiv", 
      { 
       initialContentAlignment: go.Spot.Center, 
       layout: $(go.TreeLayout, { 
        angle: 90 
       }) 
      }); 

     myDiagram.nodeTemplate = 
      $(go.Node, "Auto", 
       $(go.Shape, { 
        "figure": "Rectangle", 
        width: 140, 
        height:140, 
        "fill": "#F5D9BD", 
        "stroke": "rgba(0, 0, 0, 1)", 
        "strokeWidth": 1.2, 
        "strokeJoin": "round", 
       } 
       ), 
       $(go.Picture, "https://cdn0.iconfinder.com/data/icons/communication-technology/500/black_envelope-128.png", 
        { width: 128, height: 128 } 
       ) 
      ); 
     myDiagram.model = new go.GraphLinksModel([{ key: "Alpha" }]); 
    } 

    function createImage() { 
     var newWindow = window.open("", "newWindow"); 
     if (!newWindow) return; 
     var newDocument = newWindow.document; 
     var png = myDiagram.makeImage({ 
      size: new go.Size(Infinity, Infinity), 
      scale: 1, 
      type: "image/png" 
     }); 
     newDocument.body.appendChild(png); 
    } 
</script> 

答えて

0

これは、CORSの問題です。追加:

sourceCrossOrigin: function() { return "anonymous"; }

あなたの写真の設定に。

  $(go.Picture, "https://cdn0.iconfinder.com/data/icons/communication-technology/500/black_envelope-128.png", 
       { sourceCrossOrigin: function() { return "anonymous"; }, width: 128, height: 128 } 
      ) 

の作業例:https://codepen.io/simonsarris/pen/xLNXEZ

関連する問題