Currently I do not have much time, so generally a basic PIL based watermark is implemented. Feel free to fork!
sorl-watermark offers drop-in engines for sorl-thumbnail, which automagically insert a specified image as watermark on top of the original thumbnail.
Of course everything is configurable, from watermark image to the position and the opacity.
If you are looking for a sorl engine to dynamically create text watermarks, you might want to have a look at zeus/watermark.
Note: This project uses Semantic Versioning as it's versioning scheme.
Install sorl-watermark, either by cloning from the github repository or
by installing it via pip
:
pip install sorl_watermarker
Change sorl's thumbnail engine to the fitting one from sorl-watermark. See Engines for all available engines. Here is an example using the PIL engine.
THUMBNAIL_ENGINE = 'sorl_watermarker.engines.pil.Engine'
Next up you tell it which image should be used as a watermark. Note that this file has to live somewhere inside STATIC_ROOT.
THUMBNAIL_WATERMARK = 'my_watermark.png'
That's it for a simple setup. The engine will only apply the watermark if the thumbnail size is big enough.
See Advanced Usage for ways to dynamically change the watermark itself, it's size or ways to selectively apply watermarks.
sorl-watermark supports two of sorl-thumbnails backends:
- PIL (sorl_watermarker.engines.pil)
- GraphicsMagick (Magick++) via pgmagick (sorl_watermarker.engines.magick)
sorl-watermark also enhances the default thumbnail
templatetag with some
more options. (Well, actually it does not really enhance it, since the templatetag
itself passes the options through to the engine itself by default)
By default, the templatetag syntax is:
{% thumbnail image key1=var1 key2=var2 %}
The following new options are available:
- watermark=imagefile
This options takes an ImageFile and uses this one instead of the default watermark file, set via THUMBNAIL_WATERMARK - watermark_size=geometry
Changes the watermark's size. Takes the same options as the THUMBNAIL_WATERMARK_SIZE option. - watermark_pos=gravity
Specifies where the watermark shall be put. Accepts the same options as the THUMBNAIL_WATERMARK_POSITION setting. - watermark_alpha=integer
Sets the watermark's opacity. Has to be a value between 0 and 1.
The following settings are available
-
THUMBNAIL_WATERMARK
Sets the image to be used as a watermark. The file must live within STATIC_ROOT. -
THUMBNAIL_WATERMARK_ALWAYS
Stamp a watermark on every image.
Default is True. -
THUMBNAIL_WATERMARK_SIZE
Change the size of the watermark. This can either be a geometry string, as is usual with sorl-thumbnail ("x200", "200x200"), or a percentage.
If given a percentage, the watermark will always be the given percentage of the thumbnail size. -
THUMBNAIL_WATERMARK_OPACITY An integer from 0 to 1, specifying the opacity of the watermark.
Default is 0 (opaque). -
THUMBNAIL_WATERMARK_POSITION
Specifies the position of the watermark. You can either pass this a gravity like * "north" * "south" * "west" * "east" * "north east" * "south east" * "north west" * "south west" * "center"or a tuple (x, y). Default: "south east"