谷歌图纸中的图像功能方向错误



我正在使用Google Sheets中的Image功能来显示我的Google Drive中的照片,但所有的照片都是旋转的,我似乎找不到解决这个问题的方法。我检查了硬盘上的照片,它们的方向是正确的,出于某种原因,谷歌工作表会旋转它们。你能给我建议吗?

我正在使用谷歌应用程序脚本Web应用程序从我的IPAD中拍摄照片,IPAD将上传到我的驱动器,并自动在谷歌表单中显示这些照片。你能帮忙吗?除了图像功能之外,还有其他方法可以在单元格中显示图像吗?

这是图片的链接照片链接我在谷歌页面的图像功能中使用

这是我用来将图像上传到硬盘并在谷歌页面中显示的代码

function saveFile(obj) {
const values = obj.map(({
file,
location,
note
}) => {
if (file) {
var blob = Utilities.newBlob(Utilities.base64Decode(file.data), file.mimeType, file.fileName);
var folder = DriveApp.getFolderById("ID HERE");
var file = folder.createFile(blob);
var fileId = file.getId();
file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
var fileUrl = "https://drive.google.com/uc?export=view&id=" + fileId;
var newurls = '=image("' + fileUrl + '",2)';
return ["", newurls, new Date(), location, note];
}
return ["", "", new Date(), location, note];
});
var ss = SpreadsheetApp.getActiveSpreadsheet(); // or var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Photos Report");
ws.getRange(ws.getLastRow() + 1, 1, values.length, values[0].length).setValues(values);
//ws.getRange("M02").setValue("Send") ;    
// return sendEmail();
return "Success", sendEmail();
}

我相信你的目标如下。

  • 您想使用谷歌应用程序脚本将图像放入单元格
  • 在你的目标中,减少图像大小是包括在内的

修改点:

  • 当我测试你的图像时,我可以理解这个问题。在这种情况下,我可以确认,当图像大小减小时,图像可以插入到单元格中,而不需要旋转。因此,在这个答案中,我建议缩小图像大小并将其插入到单元格中
  • 在您的脚本中,当var folder= DriveApp.getFolderById("ID HERE");被放在循环的外部时,我认为处理成本会降低一点

当以上几点反映到您的脚本中时,它变成如下。

修改的脚本:

在使用此脚本之前,请在高级Google服务中启用Drive API。

function saveFile(obj) {
var folder= DriveApp.getFolderById("ID HERE");
const values = obj.map(({file, location, note}) => {
if (file) {
var blob = Utilities.newBlob(Utilities.base64Decode(file.data), file.mimeType, file.fileName);
var f = folder.createFile(blob);
var link = Drive.Files.get(f.getId()).thumbnailLink.replace(/=s.+/, "=s500");
var blob2 = UrlFetchApp.fetch(link, {headers: {authorization: "`Bearer " + ScriptApp.getOAuthToken()}}).getBlob().setName("resized_" + f.getName());
var ff = folder.createFile(blob2);
ff.setSharing(DriveApp.Access.ANYONE_WITH_LINK,DriveApp.Permission.VIEW);
var fileUrl = "https://drive.google.com/uc?export=view&id="+ff.getId();
var newurls = '=image("'+fileUrl+'",2)';
return ["", newurls, new Date(), location, note];
}
return ["", "", new Date(), location, note];
});
var ss = SpreadsheetApp.getActiveSpreadsheet(); // or var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Photos Report");
ws.getRange(ws.getLastRow() + 1, 1, values.length, values[0].length).setValues(values);
//ws.getRange("M02").setValue("Send") ;
// return sendEmail();
return "Success",sendEmail();
}
  • 在这个修改后的脚本中,它使用以下流。
    1. 从文件中检索原始图像
    2. 检索图像的缩略图URL,并修改URL以更改图像大小。
      • 在此示例中,它使用宽度中的500个像素作为示例。如果要修改此项,请修改"=s500"
    3. 从缩略图URL中检索blob并将其另存为文件
    4. 使用图像文件将图像插入单元格

参考:

  • 文件:获取

最新更新