Watermark on multiple images

Hi i’m new in glide and i need add watermark in images on multiple images column, please, can someone help me?

Cloudinary is the most used solution to edit images on the fly here.

With a multiple images column, you would need to:

  • Use a joined text column to join them into string form.
  • Use JavaScript to do some work with that string and apply Cloudinary transformations to them.
  • Use a split text column to split the JS result back into an array and use that inside an image component.

Thanks so much for the reply! I thought about something like that, but I have a very restrictive field to create javascript code, and putting everything together in a string, separating, treating and formatting it as a url, wouldn’t a simple code give me guidance on how to integrate javascript into the glide and if you could test this outside of glide to apply it to glide, if so, what is the chance that my code created and tested outside will work on glide?

I would suggest trying the JavaScript column if you have already written something. First up, I think you should check the right transformation on Cloudinary on a single URL, before writing the JS function for it.

1 Like

OK, I’ll explain the use of these images in my case, and maybe then we’ll have a more assertive and simpler scenario for you to visualize and explain to me a more assertive flow regarding this process.

I’m working on creating a CRM, currently we use a single image for the featured image and a field of multiple images for the extra photos in the ad.

From what I could understand, first I would have to turn this column of multiple images into a simple text column containing the string of each image, treat it as a url using Cloudinary to add the watermark, and then separate the string and creating an array to be able to reuse these images.

However, the multiple image column is not visible when I use the “Joined List” column, which makes me think that I first have to generate each image in Cloudinary and then add each link in a new column and do the flow you suggested, in the scenario where the images are imported directly into the multiple image column, how could I do this flow, or is this not possible?

Note: ignore grammatical errors, I’m using Google Translate.

Are you sure? Can you show what’s available for selectable columns when you try to create a Joined List column?

As much as it may not seem like it, the “Img Banco” column is the column of multiple images, not only it but also other columns that have more than one value per cell, such as arrays, which I cannot access in other visual components and some types of columns, it appears that I can only access simple data where each cell only has a simple value, such as: Text, Boolean or Lookup accessing a simple field like the two mentioned above

I’m stupid, I just found the multiple images column here, anyway, now a new question has arisen, when you refer to using javascript, you are suggesting the “Experimental Code” where I create a type of plugin using javascript as shown in the documentation. glide, right? I found videos teaching how to use this two years ago, I wonder if I can use this field, without fear of it going offline or being discontinued, can I use it without fear?

It’s a little convoluted to dig through all of the sub menus to find it, but if you just search for a column type of ‘javascript’, you will find it. Just add your custom code, provide any parameters that you want to pass into it, and make sure you have a ‘return’ statement to return any value that comes from that code.

While it does say that it’s “experimental”, I highly doubt that it would ever be taken away. Too many of us use it on a regular basis. I think it’s experimental only in the fact that it’s a “use at your own risk” type of thing and Glide will not provide support if your custom javascript does not work as expected. It’s pretty well sandboxed tough, so in most cases it shouldn’t cause any problems.


Very good, I tried to use this column, but I found it more complicated because I can’t think of very sophisticated logic like treating texts, formatting, adding dynamic data and formatting a return, I believe that creating external code with the “Experimental Code” would be Maybe a “better” solution, what do you think?

Either way would require writing code. Might as well save a step and do it directly in Glide instead of hosting code externally.

I used ChatGPT to throw together a quick outline of javascript to use. This will need to be modified to your needs. I’m including two parameters (p1 and p2). One would be the comma delimited list of urls and the other could be the watermark url or text or whatever you intend to use for a watermark.

function applyWatermarkToUrls(inputUrls, watermark) {
  // Split the comma-delimited list into an array of URLs
  const urls = inputUrls.split(',');

  // Modify each URL to apply a watermark using Cloudinary
  const modifiedUrls = urls.map(url => {
    // Modify the line below as necessary to populate a cloudinary url with the necessary parameters. 
    const modifiedUrl = `${url}?watermark=${watermark}`;
    return modifiedUrl;

  // Join the modified URLs into a new comma-delimited list
  const result = modifiedUrls.join(',');

  return result;

return applyWatermarkToUrls(p1, p2);

the part of writing javascript is what makes me happiest, my question is whether I can paste an extensive code like this in the “JavaScript Code” field and it will work even without hosting externally, but I believe that based on your post, I believe that the answer and yes. I’ll do some tests here now that I have a better understanding of this subject, thank you very much!

That’s the whole point of the javascript column…to write code that runs in Glide.

1 Like

Ok, I believe almost everything is ready, I need to show these images, preferably in a caroulsel, I generated a column with “split text” how can I use it now?

Just add an Image component and point it to that Split Text column.

1 Like

i do it, i need show the imagens now

I forgot that I can use split text in the image component, and I think this works now, thank you very much for all the knowledge you shared with me


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.