是否可以使用PHP或JS将JSON转换为数据URI?

当我使用Thomas J Bradley(http://thomasjbradley.ca/lab/signature-pad/)的Signature Pad通过HTML5 Canvas收集电子/数字签名时,我得到以下JSON输出:


  [{“ lx”:27,“ ly”:4,“ mx”:27,“ my”:3},{“ lx”:27,“ ly”:5,“ mx”:27,“ my”: 4},{“ lx”:25,“ ly”:33,“ mx”:27,“ my”:5},{“ lx”:25,“ ly”:32,“ mx”:25,“ my “:33},{” lx“:28,” ly“:7,” mx“:28,” my“:6},{” lx“:30,” ly“:5,” mx“:28, “ my”:7},{“ lx”:31,“ ly”:5,“ mx”:30,“ my”:5},{“ lx”:32,“ ly”:5,“ mx”: 31,“ my”:5},{“ lx”:38,“ ly”:5,“ mx”:32,“ my”:5},{“ lx”:41,“ ly”:5,“ mx “:38,” my“:5},{” lx“:42,” ly“:5,” mx“:41,” my“:5},{” lx“:43,” ly“:5, “ mx”:42,“ my”:5},{“ lx”:42,“ ly”:6,“ mx”:43,“ my”:5},{“ lx”:40,“ ly”: 7,“ mx”:42,“ my”:6},{“ lx”:37,“ ly”:8,“ mx”:40,“ my”:7},{“ lx”:29,“ ly “:13,” mx“:37,” my“:8},{” lx“:25,” ly“:16,” mx“:29,” my“:13},{” lx“:26, “ ly”:16,“ mx”:25,“ my”:16},{“ lx”:30,“ ly”:16,“ mx”:26,“ my”:16},{“ lx”: 31,“ ly”:16,“ mx”:30,“ my”:16},{“ lx”:32,“ ly”:16,“ mx”:31,“ my”:16},{“ lx “:33,” ly“:16,” mx“:32,” my“:16},{” lx“:34,” ly“:16,” mx“:33,” my“:16},{ “ lx”:36,“ ly”:16,“ mx”:34,“ my”:16},{“ lx”:32,“ ly”:18,“ mx”:36,“ my”:16} ,{“ lx”:30,“ ly”:18,“ mx”:32,“ my”:18},{“ lx”:28,“ ly”:20,“ mx”:30,“ my”: 18},{“ lx”:27,“ ly”:20,“ mx”:28,“ my”:20},{“ lx”:27,“ ly”:22,“ mx”:27,“ my “:20},{” lx“:29,” ly“:22,” mx“:27,” my“:22},{” lx“:3 0,“ ly”:22,“ mx”:29,“ my”:22},{“ lx”:32,“ ly”:22,“ mx”:30,“ my”:22},{“ lx “:35,” ly“:22,” mx“:32,” my“:22},{” lx“:61,” ly“:9,” mx“:61,” my“:8},{ “ lx”:60,“ ly”:8,“ mx”:61,“ my”:9},{“ lx”:59,“ ly”:8,“ mx”:60,“ my”:8} ,{“ lx”:58,“ ly”:8,“ mx”:59,“ my”:8},{“ lx”:54,“ ly”:11,“ mx”:58,“ my”: 8},{“ lx”:52,“ ly”:12,“ mx”:54,“ my”:11},{“ lx”:51,“ ly”:14,“ mx”:52,“ my “:12},{” lx“:51,” ly“:15,” mx“:51,” my“:14},{” lx“:50,” ly“:18,” mx“:51, “ my”:15},{“ lx”:49,“ ly”:24,“ mx”:50,“ my”:18},{“ lx”:49,“ ly”:25,“ mx”: 49,“ my”:24},{“ lx”:50,“ ly”:26,“ mx”:49,“ my”:25},{“ lx”:52,“ ly”:27,“ mx “:50,” my“:26},{” lx“:55,” ly“:28,” mx“:52,” my“:27},{” lx“:56,” ly“:28, “ mx”:55,“ my”:28},{“ lx”:57,“ ly”:29,“ mx”:56,“ my”:28},{“ lx”:59,“ ly”: 29,“ mx”:57,“ my”:29}]


JSON输出可用于在HTML5 Canvas上重新绘制/重新生成电子/数字签名。

我要完成的工作是将JSON输出转换为数据URI。

如果需要澄清或需要更多信息,请告诉我。

最佳答案

听起来您正在询问如何使用JSON绘制图像,然后获取数据uri。

您可以使用以下内容

<canvas id="myCanvas" width="578" height="200"></canvas>
<script>
  var canvas = document.getElementById('myCanvas');
  var context = canvas.getContext('2d');

  var jsonObj = [{x:1, y:2}, {x:3,x:4}];

  // draw using your data, you implement this
  context.beginPath();
  context.moveTo(jsonObj[0].x, jsonObj[0].y);
  context.moveTo(jsonObj[1].x, jsonObj[1].y);
  context.closePath();
  context.lineWidth = 5;
  context.fillStyle = '#8ED6FF';
  context.fill();
  context.strokeStyle = '#0000ff';
  context.stroke();

  // save canvas image as data url (png format by default)
  var dataURL = canvas.toDataURL();
  alert(dataURL);
</script>


http://jsfiddle.net/D9e2u/

10-08 17:17