我正在尝试在Apps脚本中下载PNG图像,将其转换为JPEG,并为此新JPEG生成数据URI。
function test() {
var blob = UrlFetchApp.fetch('https://what-if.xkcd.com/imgs/a/156/setup.png').getBlob();
var jpeg = blob.getAs("image/jpeg");
var uri = 'data:image/jpeg;base64,' + Utilities.base64Encode(jpeg.getBytes());
Logger.log(uri);
}
当我跑步时,我得到:
的 The image you are trying to use is invalid or corrupt.
甚至像:
function test() {
var bytes = UrlFetchApp.fetch('https://what-if.xkcd.com/imgs/a/156/setup.png').getBlob().getBytes();
var jpeg = Utilities.newBlob(bytes, MimeType.PNG).getAs(MimeType.JPEG);
DriveApp.createFile(jpeg);
}
不起作用。
答案 0 :(得分:2)
您的代码是正确的。这可能是一个错误,但它特定于您正在使用的文件,因此也可能是文件中的错误(即文件确实可能以某种方式被破坏)。或者它可能使用了Google无法处理的PNG格式的某些功能。用另一个替换URL,例如,
var blob = UrlFetchApp.fetch('https://cdn.sstatic.net/Sites/mathematica/img/logo@2.png').getBlob();
这两个功能都按预期工作。