所有上传图片的水印

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

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,

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 个赞

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 个赞

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 个赞

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

4 个赞

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 个赞

太棒了!它有实现相同目标的插件吗?

如果有一个用于此水印的组件会更好。

2 个赞

有人能告诉我图片保存在哪个文件夹吗?

我希望批量为它们添加水印的一种方法是运行外部图像编辑工具。

有人能够使用最新的 3.2 discourse 实现这一点吗?

这很酷。您可能还会对这个 Theme component 感兴趣

2 个赞

我在一个主题组件中试了一下。它只是一个概念验证,所以很基础。:smile:
每次上传都会自动应用水印。

从技术角度来看,就像 Discourse 在上传前预处理图像(例如压缩)一样,这个工具通过添加水印也做了同样的事情。得益于 API 和 Uppy 库,添加水印很容易实现。:pray:

如果您有任何想要考虑为最低要求的特性/自定义,请告诉我。:slight_smile:

编辑:一旦我实现了基本设置,就会发布一个版本。

14 个赞

:heart: :heart: :heart:
史诗般的工作!如果您需要任何测试人员,请告诉我。

2 个赞

嘿,这个可以上线生产环境了吗?我很有兴趣。

1 个赞

在什么情况下,在所有图片上打印水印既合适又合法?

1 个赞

这可以上线生产了吗?

抱歉,我来晚了。:sweat_smile:
如果您还有兴趣,我在这里发布了一个 TC:https://meta.discourse.org/t/watermark-image/347138。欢迎任何反馈!

7 个赞