Watermark Image

Yes, GIFs will be automatically converted to PNG. Disable this component to send GIFs normally.

Thanks for the report. I will see how to fix it soon.

1 Like

I’ve pushed a fix, can you try if it works better for you?

3 Likes

Thank you, now you can upload GIF format images normally!

3 Likes

Hey @Arkshine

I searched the all the themes repository for components that might be affected by Granular group-based permissions for anonymous and logged in users

Your component seems to default to the everyone group, which is being removed soon. I am not sure the automatic migration, which adds anonymous_users to the setting, makes much sense in this use case. So I thought I’d let you know that you might want to update your component.

3 Likes

With latest version of Discourse v2026.9.0-latest +159 we got this error:

Theme ‘Watermark Image’ contains code which needs updating. (id:discourse.native-array-extensions.findBy)

So should we change ? at line 126

discourse-watermark-image/javascripts/discourse/connectors/admin-customize-theme-before-controls/preview-watermark.gjs

From:

currentRoute.attributes.theme_fields.findBy(
        "name",
        "discourse/api-initializers/watermark-image.js"
      )

To:

currentRoute.attributes.theme_fields.find(
        (field) => field.name === "discourse/api-initializers/watermark-image.js"
      )

When I changed this code, warning gone but plugin do not work, so look for some update now

1 Like

Thanks for letting me know.

I’m actually working on a big PR to modernize and add features: DEV: Modernize component and add features - Pull Request #2 - Arkshine/discourse-watermark-image - GitHub .

I will try to push it today.

1 Like

image

Hi @Arkshine already reported? :pleading_face:

1 Like

I pushed an update. Give it a try! :tada:
Requires 2026.7.0-latest+.

New features

  • Watermark profiles
    different watermark configs.
  • Tag support
    watermark rules can target tags, not only categories/groups.
  • Text watermark
    plain text as watermark source, alongside image and QR code.
  • Advanced QR styling
    shape/frame/pattern presets, labeled frames, embedded logo (image or icon), halftone image backdrop.
  • Manual watermark toggle
    allowed groups get a button in composer to turn watermark on/off per image. Can show a list of matched profiles in a dropdown list. Works in markdown and rich editor.
  • Auto re-watermark
    images already in composer get re-processed when category or tags change.

With profiles, if there are no matches, global defaults will be matched if watermark_default_enabled is enabled.

Fixes

  • Unsupported upload extension check ran too early.
  • Better watermark error handling.
  • Deprecations errors

Migration (automatic)

  • watermark_qrcode_enabled is now renamed to watermark_source.
  • If you had an image or a QR code defined, the new watermark_default_enabled is enabled.

Other setting changes

  • watermark_profiles: Per-profile watermark config
  • watermark_text, watermark_text_style: default text source.
  • watermark_qrcode_style_config, watermark_qrcode_logo_image, watermark_qrcode_logo_config, watermark_qrcode_halftone_image: default QR styling.
  • watermark_tags: default tag targeting.
  • watermark_manual_toggle_groups: groups allowed to toggle watermark per image in composer.
  • watermark_allow_upload_on_error: upload proceeds without watermark if processing fails. Default on.

Config preview

The preview has been updated with more features and should be smoother.
The button to toggle it has been moved next to the tabs menu.


I encourage you to test and let me know if you have issues! It’s a fairly large update.


While working on it, it made me realize the limits of TC, and I think I might work on a plugin version to simplify the process/code with features such as:

  • Tracking
  • Server-side watermarking
  • Original preserved (restore it later, update watermark in bulk job)
  • Tiered access (original for staff/paid group, watermarked for public/anon, etc)
  • Dynamic QR Code
  • etc.
images
2 Likes