Convert Base64 String to image

I have a Google spreadsheet where a column contains the string that corresponds to an image in Base64. For example: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYโ€ฆ
How can I convert this back to an image link so that App sheet can display the image?

Solved Solved
1 16 6,423
1 ACCEPTED SOLUTION

Great, this information is helping a lot.
I got it working and now I need to work on the trigger function.

The working script is below:

function myFunction() {
var imgFolder = DriveApp.getFolderById(โ€˜IMAGE FOLDER URLโ€™); //id string from URL of image folder
var sheetName = โ€˜NAME OF SHEETโ€™; //name of sheet to write results
var imgCol = 12 // column containing image path/filename for my case in particular
var imgStringCol = 11 // column with Base64 string for my case in particular
var dateStringCol = 9 //column with date and time for my case in particular

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var lastRow = sheet.getLastRow();

if (sheet.getRange(lastRow, imgCol).getValue()==""){ // THIS WILL CHECK IF THE IMAGE ALREADY HAS A LINK OR NOT

var filename = sheet.getRange(lastRow, dateStringCol).getValue(); //I AM MAKING THE IMAGE NAME EQUAL TO THE DATE AND TIME TAKEN
var filenamereplace = filename.replace(":", "-"); // I AM REMOVING SEMICOLON FROM THE FILE NAME OTHERWISE APPSHEET WILL NOT RECOGNIZE THE FILE
var filenamereplace2 = filenamereplace.replace(":", "-"); // I AM REMOVING A SENCOND SEMICOLON IN MY PARTICULAR CASE
var filenamereplace3 = filenamereplace2 + ".jpg"; // ADDING THE CORRECT FILE FORMAT TO THE NAME
var base64 = sheet.getRange(lastRow, imgStringCol).getValue();

try{
  var decoded = Utilities.base64Decode(base64);
  var blob = Utilities.newBlob(decoded, MimeType.JPEG, filenamereplace3);
  imgFolder.createFile(blob);
  var imgPath = "Placas/" + filenamereplace3 // PLACAS IS THE FOLDER NAME WHERE I AM STORING THE IMAGES
  sheet.getRange(lastRow, imgCol).setValue(imgPath); // PUTTING THE FILENAME IN THE APPROPIATE COLUMN
}catch(err){Logger.log(err)}
}

Logger.log(โ€œendโ€);
}

View solution in original post

16 REPLIES 16
Top Labels in this Space