CSDN博客中图片上的水印

来源:互联网 发布:随机算法 知乎 编辑:程序博客网 时间:2024/05/21 20:29

前两天用CSDN-markdown贴博客文章的时候,顺手放了张gif动画,预览效果的时候发现,就连gif动画图片的每一帧也都给加了水印(这个功能太强了,怪不得我说怎么即时显示GIF图片的时候突然变得卡了,哈哈)。

但是有的时候我们是不想加水印的啊,CSDN-markdown编辑器的上传图片窗口里面并没有这个选择水印添加与否的选项啊。这个怎么办呢?

考虑到CSDN-markdown插入图片也是通过自动生成图片链接代码的形式实现的,我们用下图为例,对代码进行了仔细的近距离观察:

下面的效果图中水印已经添加了:
这里写图片描述

下面是插入图片的时候csdn-markdown编辑器中生成的代码:

![这里写图片描述](http://img.blog.csdn.net/20170115141115170?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RlcmVvaG9tb2xvZ3k=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/NorthWest)

实际上知道参数用Base64加密算法之后,我调整了:

![这里写图片描述](http://img.blog.csdn.net/20170115141115170?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RlcmVvaG9tb2xvZ3k=/font/Q2FsaWJyaQ==/fontsize/400/fill/IzAwMTExMQ==/dissolve/90/gravity/Center)

对上面的链接作仔细观察,发现有“?watermark”字样。接下来尝试把代码中“?watermark”后面的部分去掉, 即:

![这里写图片描述](http://img.blog.csdn.net/20170115141115170)

效果图是:
这里写图片描述

水印已经消失了!

水印中text后面对应的,原来是添加的水印文本经过Base64算法加密之后的代码,可以通过这里在线转化。添加水印的时候,似乎解码不支持中文(改成加密的中文可能出现乱码)。

注意到水印最后的默认值通常是 SouthEast, 这个可以改成 NorthWest, NorthEast, SouthWest, Center等等,它们定义了水印在图片中的位置。当然,还有 font, fontsize, disolve 等,定义水印字体、字号、跟图片融合的方式等等,这些似乎都表示在链接之中了。

我发现,这里的介绍更早、更详细:

继续研究水印的URL参数:

watermark/2/text/ICAgICAgICAgICAgR2FtZSBpcyBvdmVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

第1个参数,watermark,值为数字“2”,改变其为1,2,3,4,5,测试发现,1,4,5均不能正常解析,2.1,2.2等介于2,3之间的数也无法解析,2,3可以正常解析,且3的颜色比2的白
第2个参数:text,可以看出是Base64加密后的,解密后为:” Game is over”,可以用其他字符串Base64之后替换

第3个参数:font,估计是字体,但没弄清楚具体的编码方式

第4个参数:fontsize,改成800后,不显示水印,改成200后,水印变成原来一半大小

第5个参数:fill,水印颜色的Base64,解码后为#BABAB0,同参数2,Base64之后可改变颜色

第6个参数:dissolve,类似于透明度,值越大,水印显示越明显

第7个参数:gravity,水印在图片中的位置,测试可用值为8个方向的英文单词,如NorthWest、East、South等,还有个Center,表示水印在中间位置

上面提到font字体参数的加密方式不是Base64, 如果属实则推测应该在下面几种里面,但我懒得一个个尝试了【实际上,我尝试了下发现仍然用的是Base64加密算法,没错!所以不用尝试下面列出的其它算法了】

编码解码相关→EncodeUtils.java→Test

URL编码 urlEncodeURL解码 urlDecodeBase64编码 base64Encode、base64Encode2StringBase64解码 base64DecodeBase64URL安全编码 base64UrlSafeEncodeHtml编码 htmlEncodeHtml解码 htmlDecode

加密解密相关→EncryptUtils.java→Test

MD2加密 encryptMD2ToString、encryptMD2MD5加密 encryptMD5ToString、encryptMD5MD5加密文件 encryptMD5File2String、encryptMD5FileSHA1加密 encryptSHA1ToString、encryptSHA1SHA224加密 encryptSHA224ToString、encryptSHA224SHA256加密 encryptSHA256ToString、encryptSHA256SHA384加密 encryptSHA384ToString、encryptSHA384SHA512加密 encryptSHA512ToString、encryptSHA512DES加密后转为Base64编码 encryptDES2Base64DES加密后转为16进制 encryptDES2HexStringDES加密 encryptDESDES解密Base64编码密文 decryptBase64DESDES解密16进制密文 decryptHexStringDESDES解密 decryptDES3DES加密后转为Base64编码 encrypt3DES2Base643DES加密后转为16进制 encrypt3DES2HexString3DES加密 encrypt3DES3DES解密Base64编码密文 decryptBase64_3DES3DES解密16进制密文 decryptHexString3DES3DES解密 decrypt3DESAES加密后转为Base64编码 encryptAES2Base64AES加密后转为16进制 encryptAES2HexStringAES加密 encryptAESAES解密Base64编码密文 decryptBase64AESAES解密16进制密文 decryptHexStringAESAES解密 decryptAES

——原来,每上传一幅图片,服务器都同时准备这么多不同的面孔?是保存了不同的版本,还是用的时候临时生成呢?

不论如何,这对于我来说,相当于 CSDN-markdown博客编辑器,在提供强大的写博客服务的同时(包括对数学公式LaTeX的支持),附带提供了一种在线的、对2MB以下的、包括动态多帧GIF图片在内的各种图片格式(png,jpg等不在话下)添加部分可以定制的文字水印的功能。 做产品做得这么细心和用心,真是少见啊。

又一个喜欢CSDN-markdown写博客的理由。

0 0