【发布时间】:2021-12-13 23:49:48
【问题描述】:
正如标题所示,我目前有一些代码可以截取网站的屏幕截图并将其放在我的 Google 表格中。我的问题是如何将该图像传输到演示文稿中?图像可能会改变,所以如果可以动态改变会更好。我看到了ReplaceAllShapesWithImageRequest 课程,但没有很多示例,他们使用 URL 而不是 Google 表格中的单元格。感谢您的帮助!
编辑
此外,可能还有更多图像(大约 9 个),并且现在幻灯片中有占位符,但是我如何才能针对特定图像定位特定幻灯片以适合这样的内容
数字 01-08 将是图像。 谢谢你的帮助。
编辑 2
以下是截图的代码
function snapScreenshot() {
//specify where I want the image to be
var row = 11;
var col = 2;
var siteUrl = sheet.getRange(row, col).getValue()
var url = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=" + encodeURIComponent(siteUrl) + "&key=" + pageSpeedApiKey;
var res = UrlFetchApp.fetch(url).getContentText()
var obj = JSON.parse(res);
var imgData = obj.lighthouseResult.audits['final-screenshot'].details.data;
var strImage = imgData.replace(/^data:image\/[a-z]+;base64,/, "")
var blob = Utilities.newBlob(Utilities.base64Decode(strImage), "image/jpeg", "sample.jpeg");
sheet.insertImage(blob, 1, 29);
for (var i=0; i< obj.lighthouseResult.audits["screenshot-thumbnails"].details.items.length; i++) {
var imgData = obj.lighthouseResult.audits["screenshot-thumbnails"].details.items[i].data;
var strImage = imgData.replace(/^data:image\/[a-z]+;base64,/, "")
var blob = Utilities.newBlob(Utilities.base64Decode(strImage), "image/jpeg", "sample.jpeg");
sheet.insertImage(blob, 1, 20+(i*6))
}
}
【问题讨论】:
-
您能提供您当前的脚本吗?而且,您的问题是
My question is how to then transfer that image to the presentation?吗?如果我的理解是正确的,什么是“编辑”部分? -
@Tanaike 我的问题的基础是
how to transfer the screenshots(images) I took of the website to a specific section(number 01-08) of a specific slide(will have 2 slides that need images)。您需要我提供脚本的哪一部分?我已经完成了截图部分,但刚刚在谷歌上搜索如何传输图像。我希望这能解决问题。谢谢。 -
感谢您回复并添加您的脚本。从您的脚本中,在您的情况下,是否需要将图像从电子表格复制到幻灯片?比如直接把图片放到Slides上怎么样?但我不确定你的实际情况。所以这不是你期望的方向,我很抱歉。
-
@Tanaike 如果每次运行脚本时都可以根据 URL 更改图像,那么可以将图像直接放到幻灯片中。
-
感谢您的回复。我认为在您的情况下,脚本可以由时间驱动的触发器运行。这样,图像可以按周期更新。如果您可以使用脚本直接将图像放入幻灯片,我认为它可以更简单。
标签: google-apps-script google-sheets-api google-slides-api