Reg*_*_AG 2 google-app-engine google-apps google-apps-script google-drive-api
我在远程服务器上获得了一个图像:
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
Run Code Online (Sandbox Code Playgroud)
如何从 blob 中获取图像?我想使用此图像来获取其大小(使用 getHeight() 和 getWidth())并对其执行不同的其他操作。
谢谢
如果我的理解是正确的,这个答案怎么样?
在此模式中,宽度和高度是使用 Google Apps 脚本从图像数据 blob 中检索的。
不幸的是,在现阶段,还没有直接从图像数据的 blob 中检索宽度和高度的方法。因此,我通过将二进制级别分析为GAS 库来创建用于检索的脚本。Cooper 的评论中也提到了这一点。使用此库,您可以使用 Google Apps 脚本直接从图像数据块中检索宽度和高度。
关于库的安装,请查看这里。
var response = UrlFetchApp.fetch(fileURL);
var fileBlob = response.getBlob();
var res = ImgApp.getSize(fileBlob);
Logger.log(res)
Run Code Online (Sandbox Code Playgroud)
结果:
{
identification : ### BMP, GIF, PNG and JPG ###,
width : ### pixel ###,
height : ### pixel ###,
filesize : ### bytes ###
}
Run Code Online (Sandbox Code Playgroud)
在此模式中,使用 Google 文档检索宽度和高度。在这种情况下,请在高级 Google 服务中启用 Drive API。
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)
}
Run Code Online (Sandbox Code Playgroud)
在此模式中,通过将 blob 创建为文件来检索宽度和高度。在这种情况下,请在高级 Google 服务中启用 Drive API。
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)
Run Code Online (Sandbox Code Playgroud)
如果这个答案不是您想要的方向,我深表歉意。
归档时间: |
|
查看次数: |
5336 次 |
最近记录: |