错误消息" Domado:画布drawImage尚未实现"在Google Apps脚本中 - 不允许使用drawImage?

时间:2014-06-30 00:31:17

标签: javascript html canvas google-apps-script draw

我收到错误消息:

"Domado: canvas drawImage not yet implemented"

在浏览器控制台中使用Apps脚本中的代码,否则将在浏览器中使用。

这是HTML和Javascript代码,它可以工作,并做我想要的。相同的代码在Apps脚本HTML服务中不起作用。

HTML

<button onmouseup="fncDrawNewImage()">Put Image Into Canvas</button>
<span style='color:red'>NOTE: Large Image.  Scroll Down to see New Image<span>
    <br/>
    <br>
<img id='rawUploadImg' src="https://c63b5816896b8b38120d71a4eb99978894a5ef14.googledrive.com/host/0B52YKjuEE44ySkhPUTBsbW5sSWM/F28_003537_KPQQAPSQQQQQT0Bw_A.JPG">
<canvas id="cnvsForFormat" width="400" height="226"></canvas>

的JavaScript

window.fncDrawNewImage = function () {
    window.img = document.getElementById("rawUploadImg");
    var cnvs = document.getElementById("cnvsForFormat");
    var ctx = cnvs.getContext("2d");
    cnvs.style.border = "1px solid #c3c3c3";
    ctx.drawImage(img, 0, 0, 400, 226);
};

jsFiddle put IMG into a CANVAS with drawImage

在Apps脚本中,每行都有效,除了:

ctx.drawImage(img, 0, 0, 400, 226);

Apps Script HTML Service中是否不允许drawImage或尚未实现?{1}}在画布中绘制图像时,可以减小图像大小。这就是我想要完成的事情。如果有人知道如何减少Apps脚本中的图像大小,我肯定想知道。 (不要减少HTML中的DISPLAY大小,减小实际的字节大小)

我想知道我是否可以将图像文件发送到.gs代码,将其转换为字符串,将其发回,然后将其放入画布或图像标记中?

2 个答案:

答案 0 :(得分:1)

Apps脚本现在有一个名为IFRAME的新sandboxMode:

function doGet() {
  var template = HtmlService.createTemplateFromFile('Index');

  // Build and return HTML in IFRAME sandbox mode.
  return template.evaluate()
      .setTitle('Compress Image')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
};

现在允许ctx.drawImage()

<form>
  <input type="file" accept="image/*" onchange="fncChangeSize(this.files[0], newWidth, newHeight)" >
</form>

<canvas id="cnvsForFormat" width="400" height="266" style="border:1px solid #c3c3c3"></canvas>

<script>
  window.fncChangeSize = function(imageData, newWidth, newHeight) {
    console.log("fncChangeSize ran: " + frmData);

    var cnvs=document.getElementById("cnvsForFormat");

    var img = new Image;
    img.src = URL.createObjectURL(imageData);
    var ctx=cnvs.getContext("2d");
    ctx.drawImage(img,0,0, newWidth, newHeight);
  };
</script>

Mozilla documentation - drawImage

答案 1 :(得分:-1)

drawImage无法使用谷歌应用脚​​本