我有一个包含远程加载并在Google中创建的图像的blob:
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
var folder = DriveApp.getFolderById('THjgj698979XXXXXXXX');
var result = folder.createFile(fileBlob);我想要的是调整这个fileBlob中包含的图像的大小。我怎么能这么做?
关于您的信息,一篇可以帮助我但最终没有真正帮助我的文章:(解释如何调整图像大小,而不是如何在blob中调整图像大小) 在Google脚本中调整图像大小
谢谢
编辑:
我现在就是这么做的。但我有个问题:图像缩小了,但不是我指定的大小.
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
var folder = DriveApp.getFolderById('THjgj698979XXXXXXXX');
var docfile = Drive.Files.insert({
title: "temp",
mimeType: "application/vnd.google-apps.document",
}).getId();
var blobImage = DocumentApp.openById(docfile).insertImage(0, fileBlob);
blobImage.setWidth(10);
blobImage.setHeight(10);
var fileBlob2 = blobImage.getBlob();
fileBlob2.setName(newFilename);
var result = folder.createFile(fileBlob2);图像从4000x6000缩小到2500x1667。不是10x10 :(
你知道如何解决这个问题吗?
谢谢!
发布于 2019-11-21 23:04:51
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一。
问题和解决办法:
不幸的是,在当前阶段,没有任何方法可以直接调整Google脚本中的图像大小。但是有解决办法。此解决方案的流程如下。
thumbnailLink。
thumbnailLink修改创建的图像文件的宽度。thumbnailLink的值类似于https://lh3.googleusercontent.com/###=s220。=s220更改时,缩略图的大小也会改变。这个解决方案使用这个。
示例脚本:
在运行脚本之前,请设置width、outputFilename和url的变量。还有,请在高级谷歌服务中启用驱动器API。
function myFunction() {
var width = 10; // Please set the size of width with the unit of pixels.
var outputFilename = "sample.png"; // Please set the output filename.
var url = "###";
var blob1 = UrlFetchApp.fetch(url).getBlob().setName("sampleImage_temporal");
var fileId = DriveApp.createFile(blob1).getId();
var link = Drive.Files.get(fileId).thumbnailLink.replace(/\=s.+/, "=s" + width);
var blob2 = UrlFetchApp.fetch(link).getBlob().setName(outputFilename);
var file = DriveApp.createFile(blob2);
Drive.Files.remove(fileId);
}image/png。注意:
参考文献:
如果这不是你想要的方向,我道歉。
发布于 2021-10-12 21:59:51
成功地使用了https://github.com/tanaikech/ImgApp。不过,还需要一些额外的演示许可。
README的失窃
var res = ImgApp.doResize(fileId, width);
var width = res.resizedwidth;
var height = res.resizedheight;
DriveApp.createFile(res.blob.setName("filename"));发布于 2019-11-20 16:51:54
应用程序脚本中的图像可以通过从请求中抓取blob并将其放入任何您使用的带有width或height属性的应用程序(这些缩放图像的宽度和高度,只需使用对您最有用的任何一个)来调整大小。
但是,看起来您正在试图调整图像的大小,但这应该使用服务器/无服务器功能(可能查看可以插入Google函数的基于节点的调整尺寸工具?)。
您还可以尝试创建Google并将图像粘贴到文档中,然后将其保存到您的文件夹中。
https://stackoverflow.com/questions/58958716
复制相似问题