Google Apps 脚本:如何从 blob 获取图像?
Google Apps Script : how to get image from blob?
我在远程服务器上获取图像:
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
如何从 blob 中获取图像?我想使用此图像来获取其大小(使用 getHeight() 和 getWidth())并对它执行其他不同的操作。
谢谢
- 您想使用 Google Apps 脚本直接从图像数据块中检索宽度和高度。
如果我的理解是正确的,这个答案怎么样?
模式 1:
在此模式中,使用 Google Apps 脚本从图像数据块中检索宽度和高度。
不幸的是,在当前阶段,没有直接从图像数据块中检索宽度和高度的方法。所以我创建了通过分析二进制级别 a GAS library. This is also mentioned by 来检索的脚本。使用此库,您可以使用 Google Apps 脚本直接从图像数据块中检索宽度和高度。
示例脚本:
关于库的安装,请查看here。
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
var res = ImgApp.getSize(fileBlob);
Logger.log(res)
结果:
{
identification : ### BMP, GIF, PNG and JPG ###,
width : ### pixel ###,
height : ### pixel ###,
filesize : ### bytes ###
}
- 在此库中,可以从 BMP、GIF、PNG 和 JPG 中检索宽度和高度。
模式二:
在此模式中,使用 Google 文档检索宽度和高度。在这种情况下,please enable Drive API at Advanced Google services.
示例脚本:
function getSize_doc(blob) {
var docfile = Drive.Files.insert({
title: "temp",
mimeType: "application/vnd.google-apps.document",
}).getId();
var img = DocumentApp.openById(docfile).insertImage(0, blob);
Drive.Files.remove(docfile);
return {width: img.getWidth(), height: img.getHeight()};
}
function main() {
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
var res = getSize_doc(fileBlob);
Logger.log(res)
}
- 在此脚本中,首先,Google 文档被创建为临时文件,并从 blob 中插入的图像中检索宽度和高度。然后,临时文件被删除。
模式 3:
在此模式中,通过将 blob 创建为文件来检索宽度和高度。在这种情况下,please enable Drive API at Advanced Google services.
示例脚本:
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
var res = Drive.Files.insert({title: "temp"}, fileBlob);
Drive.Files.remove(res.id);
Logger.log(res.imageMediaMetadata.width)
Logger.log(res.imageMediaMetadata.height)
- 在此脚本中,首先从 blob 创建一个文件作为临时文件,并从创建的文件中检索宽度和高度。然后,临时文件被删除。
参考文献:
如果这个答案不是您想要的方向,我深表歉意。
我在远程服务器上获取图像:
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
如何从 blob 中获取图像?我想使用此图像来获取其大小(使用 getHeight() 和 getWidth())并对它执行其他不同的操作。
谢谢
- 您想使用 Google Apps 脚本直接从图像数据块中检索宽度和高度。
如果我的理解是正确的,这个答案怎么样?
模式 1:
在此模式中,使用 Google Apps 脚本从图像数据块中检索宽度和高度。
不幸的是,在当前阶段,没有直接从图像数据块中检索宽度和高度的方法。所以我创建了通过分析二进制级别 a GAS library. This is also mentioned by
示例脚本:
关于库的安装,请查看here。
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
var res = ImgApp.getSize(fileBlob);
Logger.log(res)
结果:
{
identification : ### BMP, GIF, PNG and JPG ###,
width : ### pixel ###,
height : ### pixel ###,
filesize : ### bytes ###
}
- 在此库中,可以从 BMP、GIF、PNG 和 JPG 中检索宽度和高度。
模式二:
在此模式中,使用 Google 文档检索宽度和高度。在这种情况下,please enable Drive API at Advanced Google services.
示例脚本:
function getSize_doc(blob) {
var docfile = Drive.Files.insert({
title: "temp",
mimeType: "application/vnd.google-apps.document",
}).getId();
var img = DocumentApp.openById(docfile).insertImage(0, blob);
Drive.Files.remove(docfile);
return {width: img.getWidth(), height: img.getHeight()};
}
function main() {
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
var res = getSize_doc(fileBlob);
Logger.log(res)
}
- 在此脚本中,首先,Google 文档被创建为临时文件,并从 blob 中插入的图像中检索宽度和高度。然后,临时文件被删除。
模式 3:
在此模式中,通过将 blob 创建为文件来检索宽度和高度。在这种情况下,please enable Drive API at Advanced Google services.
示例脚本:
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
var res = Drive.Files.insert({title: "temp"}, fileBlob);
Drive.Files.remove(res.id);
Logger.log(res.imageMediaMetadata.width)
Logger.log(res.imageMediaMetadata.height)
- 在此脚本中,首先从 blob 创建一个文件作为临时文件,并从创建的文件中检索宽度和高度。然后,临时文件被删除。
参考文献:
如果这个答案不是您想要的方向,我深表歉意。