You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Apps Script向Google Docs插入Google Drive图片时,如何按原始比例缩小图片

保持图片原始比例插入Google Docs的解决方案

我懂你的困扰——强制给所有图片设置固定的400×400尺寸,肯定会让非正方形的图片变形走样。咱们只需要先获取图片的原始宽高比例,再基于这个比例计算出缩放后的尺寸,保证最大边不超过400像素,就能完美解决这个问题了。

修改后的代码示例

if(images_list[0]){
  for(var i=0; i<images_list.length; i++){
    try{
      var imageID = images_list[i].slice(32,65);
      var blob = DriveApp.getFileById(imageID).getBlob();
      var imgDoc = body.appendImage(blob);
      
      // 获取图片原始宽高
      var originalWidth = imgDoc.getWidth();
      var originalHeight = imgDoc.getHeight();
      
      // 计算缩放比例:以400像素为最大边限制
      var scaleFactor = Math.min(400 / originalWidth, 400 / originalHeight);
      
      // 计算保持比例后的新尺寸
      var newWidth = originalWidth * scaleFactor;
      var newHeight = originalHeight * scaleFactor;
      
      // 应用新尺寸
      imgDoc.setWidth(newWidth).setHeight(newHeight);
      
      bullet_index = bullet_index+1
    }catch(e){
      // 可选:添加错误日志方便排查问题
      console.log("处理第" + i + "张图片时出错: " + e.message);
    }
  }
}

代码逻辑说明

  • 先通过imgDoc.getWidth()和imgDoc.getHeight()获取插入后图片的原始尺寸(Blob插入文档后会保留原始尺寸信息)
  • 计算缩放比例:取400/原始宽度和400/原始高度中较小的那个值,这样能保证缩放后的图片最大边不会超过400像素,同时严格遵循原始比例
  • 用原始尺寸乘以缩放比例得到新的宽高,再设置给图片,既实现了缩小需求,又不会让图片变形

这样修改后,不管你的图片是横版还是竖版,都会自动按比例缩小到合适的尺寸,再也不会出现失真的问题啦。

内容的提问来源于stack exchange,提问作者Harvey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 21:28:13