怎样去掉 CSDN-Markdown 上传图片中的水印

自己一直使用 Markdown 写技术图文,我们知道在 Markdown 中插入图片需要这个图片的URL地址,那么必须得找一个图床来存放图片。

// Markdown 中插入图片的语法结构
![这里写图片描述](这里写图片的URL地址)

我的方法是这样的:在 CSDN 上发一篇特定的 Blog 来做图床。可是 CSDN-Markdown 上传的图片被自动添加了水印,更坑的是 CSDN-Markdown 编辑器中没有选择水印添加与否的选项。

怎样去掉 CSDN-Markdown 上传图片中的水印_第1张图片
建立网格水印.png

以前,感觉能用就好,这点小瑕疵无所谓。

昨晚,在写网格交易策略的时候,不知道哪个神经元被激活,把自己吓尿了!

自己显然成为了哪个自己都讨厌的人 ---- 怕麻烦,不深入思考,不去解决问题,马虎了事。

呜呜~


不管怎样,今天必须把这个问题解决掉。

考虑到 CSDN-Markdown 插入图片也是通过自动生成图片URL的形式实现的,所以先看 CSDN-Markdown 为该图片自动添加的代码:

![这里写图片描述](https://img-blog.csdn.net/20180701101220188?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xTR09fTVlQ/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

HTTP Get 请求的 URL 通常是这样的:https://img-blog.csdn.net/20180701101220188?...?后面是传递的数据,通常以{key,value}键值对的形式出现。索性,先访问 https://img-blog.csdn.net/20180701101220188 这个地址试试看,结果如下,水印去掉了。

怎样去掉 CSDN-Markdown 上传图片中的水印_第2张图片
建立网格.png

是不是要哭死。所以呀,看起来麻烦,不愿思考,不愿去解决的问题。其实,很多问题就是一个纸老虎。


剩下的事情,就是把这些{key,value}键值对搞清楚,这个问题就圆满了。

  • key:watermark
  • value:2

尝试修改value等于1,2,3,4,5结果只有2和3能够解析。估计这是 CSDN-Markdown 内部的一个标识吧,可以忽略。

  • key:text
  • value:aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xTR09fTVlQ

这个value是Base64加密后的,解密之后为 “https://blog.csdn.net/LSGO_MYP”,我的 CSDN Blog 地址。

  • key:font
  • value:5a6L5L2T

这个value也是Base64加密后的,解密之后为“宋体”。

  • key:fontsize
  • value:400

这个value对应水印的字体大小,改成500字体变大,改成200字体变小。

  • key:fill
  • value:I0JBQkFCMA==

这个value也是Base64加密后的,解密之后为 “#BABAB0”,表示字体的颜色,对应 “RGB(186,186,176)”

  • key:dissolve
  • value:70

这个value对应透明度,改成100趋于不透明,改成10趋于透明

最后的工作就是编写Base64的加密,解密算法来验证一下。

/// /// Base64加密/// /// 加密采用的编码方式/// 待加密的明文/// 加密后的字符串static string EncodeBase64(Encoding encode, string source){    string enString;    byte[] bytes = encode.GetBytes(source);    try    {        enString = Convert.ToBase64String(bytes);    }    catch    {        enString = source;    }    return enString;}/// /// Base64加密,采用utf8编码方式加密/// /// 待加密的明文/// 加密后的字符串static void EncodeBase64(string source){    string result = EncodeBase64(Encoding.UTF8, source);    Console.WriteLine("source:{0}\nvalue:{1}", source, result);}/// /// Base64解密/// /// 解密采用的编码方式,注意和加密时采用的方式一致。/// 待解密的密文/// 解密后的字符串public static string DecodeBase64(Encoding encode, string result){    string decode;    byte[] bytes = Convert.FromBase64String(result);    try    {        decode = encode.GetString(bytes);    }    catch    {        decode = result;    }    return decode;}/// /// Base64解密,采用utf8编码方式解密/// /// 待解密的密文/// 解密后的字符串static void DecodeBase64(string result){    string source = DecodeBase64(Encoding.UTF8, result);    Console.WriteLine("result:{0}\nsource:{1}", result, source);}

运行结果如下:

怎样去掉 CSDN-Markdown 上传图片中的水印_第3张图片
运行结果.png

以上就是我解决 Markdown 插入图片时,利用 CSDN Blog 做图床,插入图片有水印问题的全过程。

解决问题的方法不重要,做事情的观念才重要,遇到问题要想办法解决它,而不是嫌麻烦,凑乎了事。多么痛的领悟 ~~

你可能感兴趣的:(怎样去掉 CSDN-Markdown 上传图片中的水印)