Package: django-easy-thumbnails-watermark
INSTALLput easy_thumbnails_watermark in INSTALLED_APPSINSTALLED_APPS = (
    'easy_thumbnails_watermark',
)add the watermark preprocesor in your settingsfrom easy_thumbnails.conf import Settings as easy_thumbnails_defaults

THUMBNAIL_PROCESSORS = easy_thumbnails_defaults.THUMBNAIL_PROCESSORS + (
    'easy_thumbnails_watermark.thumbnail_processors.watermark_processor',
)and add ‘WATERMARK’: , to your thumbnail definition for easy_thumbnails.'thumb': {
    ...
    'WATERMARK': {
        'image': 'main/img/logo.png',
        'opacity': 0.2,
        'scale': '40%',
    },
    ...
},And one of the following settings:image- A path to an image in your static files folderposition- Specify the relative position in one of four image cornersBR,BL,TR, andTL.  These represent ‘bottom-right’, ‘bottom-left’, ‘top-right’, and ‘top-left’ respectively.Alternatively, you can use relative or absolute positioning for the
watermark.  Relative positioning uses percentages; absolute positioning uses
exact pixels.  You can mix and match these two modes of positioning, but you
cannot mix and match relative/absolute with the corner positioning.  When
using relative/absolute positioning, the value for thepositionparameter
isXxY, whereXis the left value andYis the top value.  The
left and top values must be separated with a lowercasex.If you wanted your watermark image to show up in the center of any image you
want to watermark, you would use a position parameter such asposition=50%x50%or evenposition=C.  If you wanted the watermark to
show up half-way between the left and right edges of the image and 100 pixels
from the top, you would use a position parameter such asposition=50%x100.Finally, you may tell the filter to generate a position for your watermark
dynamically.  To do this, useposition=R.opacity- This parameter allows you to specify the transparency of the
applied watermark.  The value must be an integer between 0 and 1, where 0
is fully transparent and 1 is fully opaque.  By default, the opacity is set
at 0.5.tile- If you want your watermark to tile across the entire image, you
simply specify a parameter such astile=1.scale- If you’d like to have the watermark as big as possible on the
target image and fully visible, you might want to usescale=F.  If you
want to specify a particular scaling factor, just use something likescale=1.43.
Scale could also be a percentage of the smallest image, the one to be watermarked,
dimension, for example ‘20%’ would scale the watermark to be 20% of the smallest
between width and height of the target image.greyscale- If you want your watermark to be greyscale, you can specify
the parametergreyscale=1and all color saturation will go away.rotation- Set this parameter to any integer between 0 and 359 (really
any integer should work, but for your own sanity I recommend keeping the
value between 0 and 359).  If you want the rotation to be random, userotation=Rinstead of an integer.noalphadefaults to False, removes any alpha introduced with the watermark effect, useful to force a jpg image to remain the same, saving a lot of space, setting to True effectively converts any RGBA color space to RGB.They defaults to  watermark=False, position=’C’, opacity=100, scale=1, tile=False, greyscale=False, rotation=0CreditsI copied various code fromhttps://raw.github.com/codekoala/django-watermarkand simply adapted for easy_thumbnails