首页 > 解决方案 > Google Apps 脚本 - 将 base 64 图像源转换为图像文件

问题描述

这是一个图像标签示例,图像源为 base 64 数据。base 64 数据是笑脸。

<img src="data:image/png;base64,R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7">

我想使用 base64 数据在 Google Drive 中创建图像文件。

我尝试了以下代码,该代码运行并创建了一个没有错误的文件,但它不会作为图像文件打开。

function createImageFileFromBase64() {
  var data = 'R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7';

  var imageBlob = Utilities.newBlob(data, 'image/png');

  var resource = {
    title: 'AAA Test_Image',
    mimeType: 'image/png'
  }

  var theReturn = Drive.Files.insert(resource,imageBlob );

  Logger.log('file ID: ' + theReturn.id);
}

我的目标是在不对图像文件发出外部请求的情况下制作图像文件。我希望将图像数据“硬编码”到脚本中。

标签: imagefilegoogle-apps-scriptbase64

解决方案


使用通过解码 base64字符串创建的字节数组创建 blob :

var imageBlob = Utilities.newBlob(Utilities.base64Decode(data), 'image/png');

推荐阅读