Watermark on all upload images

Dear all Discourse Developers,

I want to thanks all Discourse developers for their excellent work on making the best forum in the world. :smiling_face_with_three_hearts: Personally, I have used other programs, such as Discuz and Buddyboss (Wordpress) to build serval forums in past 10 years, none of them are as great as Discourse.

The only feature I missed in Discourse is the watermark feature. It will be perfect if Discourse support Watermark on all upload images. It doesn’t need to be extremely complicated, like some other user suggested in this forum. (I understand why developer ignore their request, because it is totally impractical.)


IMHO, A very simple watermark capability will be good enough. Add a icon/text on every uploaded images, just let others know the image is originated from my forum when someone share (or steal) your images to other website/platform.

Personally, I always add watermark by myself before upload to the forum, however many community members don’t want to do it by themselves, especially when they post image using smartphone, they hope to be automatically add by the forum.

I understand that Discourse original designed for more a text base forum, rather than forum with lots images, such as Photography forum. But thanks to many excellent Plugin / TC available, I can make a photo orientated forum with Discourse nicely.


I recommend add a watermark image upload box in
/admin/site_settings/category/branding
2020-12-30_035510

And add a selection button in
/admin/site_settings/category/files
2020-12-30_042258

And a pull down menu for watermark position, similar to,
2020-12-30_042407

Then, It will be good enough. No need other fancy features.
Other feature, like scaling, opacity, backup original image, etc. They are great but not necessary.

Lastly, I want to thanks all Discourse Developers for their continuous hardworking.
Thank you and Happy New year ~!:kissing_heart:

7 Likes

Thanks Jacky, Sounds like an interesting plugin for someone to experiment with. I do not think though that we will make this a core feature, but core can certainly help facilitate the plugin.

If you have budget I recommend posting in marketplace, my guess is that a minimal prototype plugin (with minimal configuration - only supply text) would take about 1 to 2 days to build.

Watermark by superimposing images may take a bit longer to get right.

12 Likes

After some experiment, I find a temp “solution” for the watermark. :partying_face:

Just in case, some others may interest. I want to share my workaround. Hope it may help. :smiling_face_with_three_hearts:

1, First, I install Chevereto (free) to another sub domain.
(it is very easy, just upload the installer.php file to server, load the page & follow the setup. It complete in mins) :kissing_heart:

2, The free version also support watermark, you can setup it in dashboard image upload setting.

You can also set Max. image width & height in dashboard, so all large image uploaded will automatically resize.

3, Add the Chevereto Plugin (script) to Discourse <head> tag
<script async src="https://img.example.com/sdk/pup.js" data-url="https://img.example.com/upload"></script>

4, Discourse seem don’t support i tag fa-icon anymore, so I have to modify the java script from
<i class="fa fa-cloud-upload d-icon d-icon-upload"></i>
to
<svg class="fa d-icon d-icon-cloud-upload-alt svg-icon svg-node" aria-hidden="true"><use xlink:href="#cloud-upload-alt"></use></svg>’

5, If everything setup right, it will show cloud upload icon in discourse editor.

6, Just click on the new icon, Drag & drop image to popup window and it automatically upload & paste the code to editor with watermark. :partying_face:

7, Now it work perfectly in desktop. But I am still figuring how to add the icon to smart phone. :thinking: I will update this post if I find a way to do it.

It is just a temp solution, workaround, not perfect at all but can do it easily within mins. I am still hoping Discourse can add watermark in core or by plugin / TC in future.

9 Likes

This looks good. A theme component with all this, leaving only the installation of the Chevereto as a manual step, would be great.

4 Likes

I modified the Chevereto Plugin Javascript a little bit.

By changing
sibling: ".upload.btn", siblingPos:"before",
to
sibling:".code.btn",siblingPos:"after",

Now, the icon show in both Desktop and Smartphone. :partying_face:

2 Likes

love it! Does it have a plugin to achieve the same target?

Should be better if there is a component for this watermark.

2 Likes

Can anyone tell in which folder the images are saved?

One of the ways i would like to Watermark them in bulk is by running external image editing tool.

Has anyone been able to achieve this with the latests 3.2 discourse?

This is pretty cool. You might also be interested in this theme-component

2 Likes

I gave it a try in a theme component. It’s just proof of concept, so it’s basic. :smile:
For every upload, a watermark is applied automatically.

On the technical side, like how Discourse preprocesses images before uploading (such as compressing), this tool does the same with watermarking. Thanks to the API and Uppy library, watermarking is easily achievable. :pray:

Let me know if you have features/customization in mind that you would consider as a minimum. :slight_smile:

EDIT: will post a version as soon I implement basic settings.

14 Likes

:heart: :heart: :heart:
Epic work! Let me know if you need any testers

2 Likes

Hey, is this ready for production? I’m very interested

1 Like

In what situation is suitable and legal print watermark on all images?

1 Like

this ready for production?