打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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


LSGO软件技术团队 

贡献人:马燕鹏

如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。

If you like the content here, the greatest help you can give me is forwarding, so tell your friends and encourage them to learn together.

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

// Markdown 中插入图片的语法结构

![这里写图片描述](这里写图片的URL地址)

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

被自动添加水印的图片

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

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

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

呜呜~


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

考虑到 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 

这个地址试试看,结果如下,水印去掉了。

水印去掉后的图片

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


剩下的事情,就是把这些{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的加密,解密算法来验证一下。

    /// <summary>
    /// Base64加密
    /// </summary>
    /// <param name="encode">加密采用的编码方式</param>
    /// <param name="source">待加密的明文</param>
    /// <returns>加密后的字符串</returns>
    static string EncodeBase64(Encoding encode, string source)
    {
        string enString;
        byte[] bytes = encode.GetBytes(source);
        try
        {
            enString = Convert.ToBase64String(bytes);
        }
        catch
        {
            enString = source;
        }
        return enString;
    }

    /// <summary>
    /// Base64加密,采用utf8编码方式加密
    /// </summary>
    /// <param name="source">待加密的明文</param>
    /// <returns>加密后的字符串</returns>
    static void EncodeBase64(string source)
    {
        string result = EncodeBase64(Encoding.UTF8, source);
        Console.WriteLine("source:{0}\nvalue:{1}", source, result);
    }

    /// <summary>
    /// Base64解密
    /// </summary>
    /// <param name="encode">解密采用的编码方式,注意和加密时采用的方式一致。</param>
    /// <param name="result">待解密的密文</param>
    /// <returns>解密后的字符串</returns>
    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;
    }

    /// <summary>
    /// Base64解密,采用utf8编码方式解密
    /// </summary>
    /// <param name="result">待解密的密文</param>
    /// <returns>解密后的字符串</returns>
    static void DecodeBase64(string result)
    {
        string source = DecodeBase64(Encoding.UTF8, result);
        Console.WriteLine("result:{0}\nsource:{1}", result, source);
    }

    运行结果如下:


    运行结果

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

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

    多么痛的领悟 ~~


    经过8年多的发展,LSGO软件技术团队在地理信息系统、数据统计分析、计算机视觉领域积累了丰富的研发经验,也建立了人才培养的完备体系。

    欢迎对算法设计与实现感兴趣的同学加入,与我们共同成长进步。

    本微信公众平台长期系统化提供有关机器学习、软件研发、教育及学习方法、数学建模的知识,并将以上知识转化为实践。拒绝知识碎片化、耐心打磨技能、解决实际问题是我们的宗旨和追求。

    本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
    打开APP,阅读全文并永久保存 查看更多类似文章
    猜你喜欢
    类似文章
    网上难查到的Markdown语法(适用于CSDN创作)
    C#加密方法汇总(精华)
    C# 实现MD5加密
    C#开发中常用的加密解密方法汇总
    RSA加解密工具类
    java给图片添加图片水印,文字水印,马赛克
    更多类似文章 >>
    生活服务
    热点新闻
    分享 收藏 导长图 关注 下载文章
    绑定账号成功
    后续可登录账号畅享VIP特权!
    如果VIP功能使用有故障,
    可点击这里联系客服!

    联系客服