Ala*_*lls 3 base64 image google-sheets google-apps-script
给定 png 文件的一些 Base64 编码数据,如下面图像标签中的示例所示。
<img src="data:image/png;base64,R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7">
Run Code Online (Sandbox Code Playgroud)
我需要根据该insertImage()
方法的 Base64 编码数据创建图像 blob。
sheetClass.insertImage(imageBlob, column, row)
Run Code Online (Sandbox Code Playgroud)
我尝试使用下面的代码,但它引发了错误:
执行失败:从 URL 检索图像时出错或 URL 错误
文档指出该方法需要一个 blob,而不是 URL,但它似乎需要一个指向图像文件的链接。
function insertImageFromBase64Src() {
var data = 'R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7';
var imageBlob = Utilities.newBlob(Utilities.base64Decode(data), 'image/png').getBytes();
var ss = SpreadsheetApp.getActiveSpreadsheet();//This code is bound to a Sheet
var po = {
shName:'Update File',
column:1,
row:37
}
var sh = ss.getSheetByName(po.shName);
var image = sh.insertImage(imageBlob, po.column, po.row);//Insert an image and return the image
}
Run Code Online (Sandbox Code Playgroud)
这个修改怎么样?
insertImage
可以使用 blob 和 URL(图像文件的直接链接)。
imageBlob
是一个字节数组,即“number[]”。由此,我认为发生了错误。请将名称添加到 blob 中。
当你的脚本被修改后,它会变成如下所示。
function insertImageFromBase64Src2() {
var data = 'R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7';
var imageBlob = Utilities.newBlob(Utilities.base64Decode(data), 'image/png', 'sample'); // Modified
var ss = SpreadsheetApp.getActiveSpreadsheet(); //This code is bound to a Sheet
var po = {
shName:'Update File',
column:1,
row:37
}
var sh = ss.getSheetByName(po.shName);
var image = sh.insertImage(imageBlob, po.column, po.row);//Insert an image and return the image
}
Run Code Online (Sandbox Code Playgroud)
data
可以正确解码。如果这不能直接解决您的问题,我深表歉意。
归档时间: |
|
查看次数: |
5671 次 |
最近记录: |