热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎样去掉CSDNMarkdown上传图片中的水印

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

自己一直使用 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的加密,解密算法来验证一下。

///


/// 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);
}

运行结果如下:

image



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

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


推荐阅读
  • 技术分享:如何在没有公钥的情况下实现JWT密钥滥用
      ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 加密、解密、揭秘
    谈PHP中信息加密技术同样是一道面试答错的问题,面试官问我非对称加密算法中有哪些经典的算法?当时我愣了一下,因为我把非对称加密与单项散列加 ... [详细]
  • 现在很多App在与服务器接口的请求和响应过程中,为了安全都会涉及到加密和解密的问题,如果不加的话就会是明文的,即使加了GZIP也可以被直接解压成明文。如果同时有Android和IO ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
  • 今天周六,原则上要休息,但想到下周还有一堆任务,还是先做一部分工作吧,就把之前做的票面设计器改了改,增加了上传图片和更换背景底图的功能。现在打算整理下这个设计器,也算对齐一个总结。不过这属于我们部门的 ... [详细]
  • 从C#Byte数组加载图像,并使用AngularJS将图像放在html标记中我正在使用ByteArrayforms的Image,因为我正在使用以下C#方法转换字节数组publicH ... [详细]
  • 一、前言个人认为,PHP是世界上为数不多,最人性化的语言。虽然是二次开发、弱类型语言,由CC编写的PHP引擎去解析。但是,其 ... [详细]
  • 我认为我的PHPintall可能有问题.当我尝试这样做时,我得到了Warning:mcrypt_decrypt()[function.mcrypt-decrypt]:Modulei ... [详细]
author-avatar
云下拾雨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有