1

我有以下代码可以从我的谷歌聊天中保存图像:

我的 HMTL;

   function getImgData(chartContainer) 
   {
        var chartArea = chartContainer.getElementsByTagName('iframe')
[0].contentDocument.getElementById('chartArea');

        var svg = chartArea.innerHTML;
        var doc = chartContainer.ownerDocument;
        var canvas = doc.createElement('canvas');
        canvas.setAttribute('width', chartArea.offsetWidth);
        canvas.setAttribute('height', chartArea.offsetHeight);


        canvas.setAttribute(
            'style',
            'position: absolute; ' +
            'top: ' + (-chartArea.offsetHeight * 2) + 'px;' +
            'left: ' + (-chartArea.offsetWidth * 2) + 'px;');
        doc.body.appendChild(canvas);
        canvg(canvas, svg);
        var imgData = canvas.toDataURL('image/png');
        canvas.parentNode.removeChild(canvas);
        return imgData;
  }

  function saveAsImg(chartContainer) 
  {
      var data = getImgData(chartContainer);
      window.location = data.replace('image/png', 'image/octet-stream');
  }

问题是向用户询问位置,我想直接保存它,我的意思是,不询问任何特定位置,因为在服务器端将此图像包含到 pdf 文件中之后我需要这个位置,所以我需要要知道位置,我需要对用户透明。

谢谢你的好处。

4

1 回答 1

0

您是否希望将图像保存在服务器上而不是客户端?如果是这样,您将需要服务器上的服务,该服务可以接受上传中的图像并将其保存为文件。然后你可以通过 AJAX 发送图像,如下所示:

function uploadImage (chartContainer) {
    // using jQuery AJAX
    $.ajax({
        url: '/path/to/image/save/service',
        data: {
            image: getImgData(chartContainer)
        },
        type: 'POST'
    });
}

这可能需要调整才能完全正确,但基本概念已经到位。

于 2013-07-23T21:28:32.413 回答