GoJS2.1去水印
下载的GoJS 2.1版本,自带水印和copyright信息,如下
网上找了不少信息,基本都只适用于1.5版本,于是自己花了点时间追了下源码。
2.1版本去水印方法如下
打开go-debug.js文件(笔者下载的dev版本),找到Ei()这个方法(这个是格式化之后的),除了最后的bl=a这个赋值,其他全部删除。
function Ei() {
if (gh) {
var a = qa.document.createElement("canvas"), b = a.getContext("2d"), c= Va("7ca11abfd022028846");
b[c] = Va("398c3597c01238");
for (var d = ["5da73c80a36455d5038e4972187c3cae51fd22", ra.Dx + "4ae6247590da4bb21c324ba3a84e385776", Gb.xF + "fb236cdfda5de14c134ba1a95a2d4c7cc6f93c1387", K.za], e = 1; 5 > e; e++)
b[Va("7ca11abfd7330390")](Va(d[e - 1]), 10, 15 * e);
b[c] = Va("39f046ebb36e4b");
for (c = 1; 5 > c; c++)
b[Va("7ca11abfd7330390")](Va(d[c - 1]), 10, 15 * c);
if (4 !== d.length || "5" !== d[0][0] || "7" !== d[3][0]) Gb.prototype.Pd = Gb.prototype.qy;
bl = a
}
}
修改为
function Ei() {
if (gh) {
var a = qa.document.createElement("canvas");
bl = a
}
}
修改后完美去除了水印
Va()这个方法类似于字符串解密,for循环里面传入的字符串调用Va()方法后解密成了水印的内容,然后调用canvas对象的fill方法写入了进去。并且循环两次用不同的颜色写了两遍,保证不管是白背景还是黑背景,水印都能显示。
Va()方法具体怎么字符串解密的没有再研究,有研究的小伙伴可以告诉我。
Over,闪人!