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

如何通过Apps Script将Google Photos的HEIC文件转换为JPG或PNG

Apps Script实现HEIC转JPG/PNG后上传Google Photos方案

核心逻辑

利用Google Drive原生支持HEIC格式解析的能力,直接在Google服务生态内完成格式转换,无需第三方工具、无需手动操作。

前置准备

使用前需要先在Apps Script中开启Drive API高级服务:

  • 打开脚本编辑器,点击左侧「服务」按钮
  • 在弹出的列表中找到「Drive API」,选择v3版本后点击添加

修改后完整代码

function uploadMediaItems() {
  const albumId = "AKwCquOrmWbEihvwEqIM7Jy_H8wrkM_dof1eIGwXq8YZV-uuj9jWvkMT5oWkG6P0a-w_w9VyTOxM";  // 请设置相册ID
  var arrId = [
    "1ssNYJFSEdfRI55IUi_tte3iC_JcPLG-0"
  ];

  const items = arrId.map(id => {
    const file = DriveApp.getFileById(id);
    let blob, filename = file.getName();
    // 匹配HEIC格式文件
    if (/\.heic$/i.test(filename)) {
      // 如需转换为PNG,将下方image/jpeg改为image/png即可
      const exportLink = Drive.Files.get(id, {fields: 'exportLinks'}).exportLinks['image/jpeg'];
      // 拉取转换后的图片资源
      blob = UrlFetchApp.fetch(exportLink, {
        headers: {Authorization: `Bearer ${ScriptApp.getOAuthToken()}`}
      }).getBlob();
      // 如需转换为PNG,将下方.jpg改为.png即可
      filename = filename.replace(/\.heic$/i, '.jpg');
    } else {
      // 非HEIC文件直接使用原资源
      blob = file.getBlob();
    }
    return {blob: blob, filename: filename};
  });
  const res = GPhotoApp.uploadMediaItems({albumId: albumId, items: items});
  console.log(JSON.stringify(res))
}

方案说明

  • 转换过程全程自动化,无需人工右键另存操作
  • 采用Drive原生解码能力,画质损失极小
  • 所有操作都在Google服务内部完成,无数据外泄风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:15:03