从七牛云拉取的图片加上自己的水印处理, 顺便对比一下文件的MD5值

文字水印

watermark/2
         /text/<encodedText>
         /font/<encodedFontName>
         /fontsize/<fontSize>
         /fill/<encodedTextColor>
         /dissolve/<dissolve>
         /gravity/<gravity>
         /dx/<distanceX>
         /dy/<distanceY>
参数名称 必填 说明
/text/eHUzMzUy 水印文字内容(经过URL安全的Base64编码)
/font/shruti   水印文字字体(经过URL安全的Base64编码),默认为黑体,详见支持字体列表 注意:中文水印必须指定中文字体
/fontsize/500   水印文字大小,单位: 缇 ,等于1/20磅,默认值是240缇,参考DPI为72
/fill/d2hpdGU=   水印文字颜色,RGB格式,可以是颜色名称(例如 red)或十六进制(例如 #FF0000),参考RGB颜色编码表,默认为黑色。经过URL安全的Base64编码
/dissolve/90   透明度,取值范围1-100,默认值100(完全不透明)
/gravity/SouthEast   水印位置,参考水印位置参数表,默认值为SouthEast(右下角)
/dx/20   横轴边距,单位:像素(px),默认值为10
/dy/80   纵轴边距,单位:像素(px),默认值为10

看个示例:看到右下角加的 xu3352 了没

https://odum9helk.qnssl.com/4c0aa36a9aafb42adeb9e9c173c62a13?watermark/2/text/eHUzMzUy/font/5a6L5L2T/fontsize/500/fill/d2hpdGU=/dissolve/100/gravity/SouthEast/dx/20/dy/80

示例

JS Base64

// 直接调用
str = "The quick brown fox jumps over the lazy dog";
b64 = btoa(unescape(encodeURIComponent(str)));
dstr = decodeURIComponent(escape(window.atob(b64)));
console.log(str);
console.log(b64);
console.log(dstr);

如此, 水印内容可以直接在页面使用JS动态生成

文件MD5校验

import os
import hashlib

def md5sum(filename):
        """
        用于获取文件的md5值
        :param filename: 文件名
        :return: MD5码
        """
        if not os.path.isfile(filename):  # 如果校验md5的文件不是文件,返回空
            return
        myhash = hashlib.md5()
        f = open(filename, 'rb')
        while True:
            b = f.read(8096)
            if not b:
                break
            myhash.update(b)   
        f.close()
        return myhash.hexdigest()

print(md5sum('/Users/xuyinglong/Downloads/base64.html'));

这个和在线文件MD5校验工具的值是一致的, 没毛病

同一张图片使用不同的水印后进行MD5检查, 可以发现并不一样了


参考:



blog comments powered by Disqus

Published

18 April 2018

Tags